基于使用PIL的比较结果来改变像素



我正在尝试比较两个看起来相同但RGB平均值不同的图像。

我已经创建了一个新的空白图像,如果两个图像在该位置匹配,我将绘制一个彩色像素,如果它们不匹配,它将绘制不同的彩色像素,希望突出改变像素的像素位置。

diff_img = Image.new('RGB', (width,height), "black")
map_diff = diff_img.load()
Good_count = 0
for i in range(open_img1.size[0]):
for j in range(open_img1.size[1]):
if File1[i] == File2[i] and File2[j] == File2[j]:
Good_count += 1
else:
map_diff[i,j] = (255, 255, 255) # set the colour accordingly
diff_img.show()

目前,这只给了我一个黑色图像,所以新图像上的像素没有改变。我不确定哪里出了问题,因为从我所看到的情况来看,如果两个文件的行和列不匹配,像素会变成白色吗?

我的意思是PIL可以使用numpy数组,或者至少可以很容易地转换为它们,所以我只使用它。

from PIL import Image    
img = np.array(Image.open(File1)) 
img2 = np.array(Image.open(File2))
img3 = img == img2
Image.fromarray(img3).save("test.png")  

这应该已经做到了。

最新更新