【发布时间】:2016-12-16 04:41:01
【问题描述】:
我正在使用 PIL 拍摄具有黑色背景的图像并用它制作蒙版。我想要程序做的是遍历图像中的所有像素,如果像素为黑色,则将其变为白色,如果是任何其他颜色,则将其变为黑色,但我不确定如何适当地比较像素值以确定什么与像素有关。
到目前为止,这是我创建全黑图像的代码。
import os, sys
import Image
filename = "C:\Users\pdiffley\Dropbox\C++2\Code\Test\BallSpriteImage.bmp"
height = 50
width = 50
im = Image.open(filename)
im = im.load()
i = 0
j = 0
while i<height:
while j<width:
if im[j,i] == (0,0,0):
im[j,i] = (255,255,255)
else:
im[j,i] = (0,0,0)
j = j+1
i = i+1
mask = Image.new('RGB', (width, height))
newfile = filename.partition('.')
newfile = newfile[0] + "Mask.bmp"
mask.save(newfile)
我认为问题在于 if 语句将 im[j,i] 与 RGB 值 (0,0,0) 进行比较,该值始终为 false。比较像素的正确方法是什么?
【问题讨论】:
-
看起来不错。原图肯定是RGB的吗?检查
im.mode。如果不是“RGB”,那就是问题所在。
标签: python python-imaging-library