我有一个JPEG图像,我需要尽快计算每个栅格(红色,蓝色和绿色)的平均值。当我尝试使用两个for循环访问每个像素并添加值时,该过程将花费很长时间(大约30秒)。有没有一种方法可以快速计算平均栅格值(也许使用numpy和OpenCV)?我使用的代码如下:
for i in range(width):
for j in range(height):
pix = im.getpixel((i,j))
redValues = redValues + pix[0]
greenValues = greenValues + pix[1]
blueValues = blueValues + pix[2]
最佳答案
import cv2
## Read the image into `BGR`: (H,W,3), [[B,G,R],...]
img = cv2.imread("test.png")
## Get shape
H,W = img.shape[:2]
## calculate
avg = img.reshape(-1,3).sum(axis=0)/(H*W)
print(avg)
关于python - 使用numpy计算平均栅格值(快速),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48160105/