我希望获得这10张照片的每张照片的相同像素(150,220)的平均值。
怎么做?
每张照片都是相同的尺寸。
例如:
IMG1 [220150] = [1,2,3]
IMG2 [220150] = [2,3,4]
...
IMG9 [220150] = [9,10,11]
img10 [220150] = [10,11,12]
avg_value = [(1 + 2 + ...... + 9 + 10)/ 10,(2 + 3 + ...... + 10 + 11)/ 10,(3 + 4 + ...... + 11 + 12)/ 10 ]
我的代码:
import cv2
img1 = cv2.imread( r'E:/0001.jpg' )
img2 = cv2.imread( r'E:/0002.jpg' )
img3 = cv2.imread( r'E:/0003.jpg' )
img4 = cv2.imread( r'E:/0004.jpg' )
img5 = cv2.imread( r'E:/0005.jpg' )
img6 = cv2.imread( r'E:/0006.jpg' )
img7 = cv2.imread( r'E:/0007.jpg' )
img8 = cv2.imread( r'E:/0008.jpg' )
img9 = cv2.imread( r'E:/0009.jpg' )
img10 = cv2.imread( r'E:/0010.jpg' )
img_array = [img1,img2,img3,img4,img5,img6,img7,img8,img9,img10]
答案 0 :(得分:2)
以下是我们如何使用numpy
计算一组图像中特定像素的平均像素值。
import numpy as np
import cv2
names = [r'E:/0001.jpg',
r'E:/0002.jpg',
r'E:/0003.jpg',
r'E:/0004.jpg',
r'E:/0005.jpg',
r'E:/0006.jpg',
r'E:/0007.jpg',
r'E:/0008.jpg',
r'E:/0009.jpg',
r'E:/0010.jpg'];
#Read all the images
images = [cv2.imread(i) for i in names];
#Get that specific pixel of all the images (making a 2D array). Exclude non-existing images
vals = np.array([im[220,150,:] for im in images if im is not None]);
#Compute mean along the first axis of 2D array
m = np.mean(vals, axis=0);
print(m)
在Ubuntu 14.04 上使用 Python 3.4 和 OpenCV 3.4 进行测试。