我有两个共同定位的图像,两者都以类似的方式创建,两者的大小都是7,221 x 119像素。
我想写一个这样的逻辑:
如果图像1中某个像素(称为x)的R,G,B值= 0,0,0(黑色)并且图像2中像素x的R,G,B值= 0,0 ,0(黑色)然后将图像1中像素x的R,G,B值更改为255,255,255(白色),否则无变化。
我如何在Matlab或Python中执行此操作?
答案 0 :(得分:0)
您应该可以使用Pillow包在python中执行此操作。您需要加载两个像素,检查所有颜色通道是否为0
,如果是,请将它们设为255
,然后再次保存图像。在Python中,0
被解释为False
,因此当not any(vals)
仅包含零时,True
将为vals
。
from PIL import Image
im1 = Image.open("image1.jpg")
im2 = Image.open("image2.jpg")
pixel = (0, 0)
newcolor = (255,)*3
if not any(im1.getpixel(pixel)) and not any(im2.getpixel(pixel)):
im1.putpixel(pixel, newcolor)
im1.save('image1conv.jpg')
请注意,not any(im1.getpixel(pixel)) and not any(im2.getpixel(pixel))
可以重写为not any(im1.getpixel(pixel) + im2.getpixel(pixel))
,但我认为第一种方式具有更清晰的逻辑。