有关两个图像像素一一对应相乘操作
有时候会 需要将两幅图对应的像素点进行相乘,用img1 * img 2 程序不会出现问题,但是最后结果会出现问题。
问题有可能是这样的:
#这里的两幅图,im1 为原图,im2 为灰度值反转后的值
import cv2
#cv2.IMREAD_GRAYSCALE,一层灰度值
im1 = cv2.imread('baboonc/baboonc5.bmp',cv2.IMREAD_GRAYSCALE)
im2 = cv2.imread('baboonc/baboonc5_fan.bmp',cv2.IMREAD_GRAYSCALE)
# im3 =im1 * im2
print(im1[0][0])#141
print(im2[0][0])#114
sum = 0
x = im1[0].size
tol = im1.size
y = tol // x
im3 =[[0 for j in range(x)] for i in range(y)]
for i in range(x):
for j in range(y):
#通过将图片的像素点进行 int 化,就可以像素值进行互乘,从而进行其他累加等操作
im3[i][j] = int(im1[i][j]) *int(im2[i][j])
print(im3[0][0])#16074
im4 = im1 * im2
print(im4[0][0]) #202
两者值不同