2つの画像を比較し、差分画像を保存する場合は、差分が赤で表示されます。 残念ながら、私は次のエラーを取得:あなたはグレースケール画像への変換を行った後Python Imaging Library:ピクセル値にアクセスできない
Traceback (most recent call last): File "pythontest.py", line 216, in <module> nDiff = compare(sPathCur, sPathRef, sPathDif) File "pythontest.py", line 88, in compare pix_diff[y, x] = (255, 0, 0) TypeError: function takes exactly 1 argument (3 given)
def compare(sPathCur, sPathRef, sPathDif):
im_cur = Image.open(sPathCur)
im_ref = Image.open(sPathRef)
im_dif = im_cur.convert('L') # convert image to grey scale
delta = ImageChops.difference(im_cur, im_ref)
width, height = delta.size
pix_delta = delta.load()
pix_diff = im_dif.load()
for y in range(width):
for x in range(height):
r, g, b = pix_delta[y, x]
if (r > 0 or g > 0 or b > 0):
pix_diff[y, x] = (255, 0, 0)
im_dif.save(sPathDif)
メソッド 'putpixel'の[docs](http://www.effbot.org/imagingbook/image.htm#tag-Image.Image.putpixel)は、次のように言っています:"色は、単色画像の場合は単一の数値として与えられ、バンド画像、マルチバンド画像用のタプルなどがあります。タプルを単一の値に変換する必要がありますか? – phd