我正在使用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」,那就是問題所在。 – andrewdski