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)
私はこの問題は、常にfalseと評価RGB値(0,0,0)にイム[J、I]を比較するif文であると考えています。ピクセルを比較する正しい方法は何ですか?
そうだね。元の画像は間違いなくRGBですか? 'im.mode'をチェックしてください。 "RGB"でない場合は問題です。 – andrewdski