【发布时间】:2016-09-20 01:24:41
【问题描述】:
我有 2 个位于同一位置的图像,它们都以类似的方式创建,大小均为 7,221 x 119 像素。
我想遍历两个图像的所有像素。如果第一张图片的像素是黑色的,第二张图片的像素也是黑色的,则将其变为白色,否则,没有变化。
我如何用 python 做到这一点?
【问题讨论】:
我有 2 个位于同一位置的图像,它们都以类似的方式创建,大小均为 7,221 x 119 像素。
我想遍历两个图像的所有像素。如果第一张图片的像素是黑色的,第二张图片的像素也是黑色的,则将其变为白色,否则,没有变化。
我如何用 python 做到这一点?
【问题讨论】:
我建议使用 PIL 库的分支 Pillow 库 (https://python-pillow.org/)。
以下是 Pillow 文档中的内容:http://pillow.readthedocs.io/en/3.1.x/reference/PixelAccess.html
还有几个 Stackoverflow 问题可能会对您有所帮助:
Is it possible to change the color of one individual pixel in Python?
我猜你只需要打开两个图像,循环遍历 rach 图像的每个像素,比较像素,比较像素,然后在必要时替换。
【讨论】:
这应该与您正在寻找的内容非常接近。
from PIL import Image
from PIL import ImageFilter
im = Image.open('a.png')
imb = Image.open('b.png')
pix = im.load()
width, height = im.size
for w in xrange(width):
for h in xrange(height):
r,g,b,a = pix[(w,h)]
rb, gb, bb, ab = pix[(w,h)]
if not (r+g+b+rb+gb+bb): #all values 0
pix[w,h] = (255,255,255,255)
im.save('test','BMP')
【讨论】: