1

PIL (1.1.7、Portable Python 2.7.5.1、Windows 7) で画像を変換しているときに、非常に奇妙な動作に遭遇しました。単位行列 (1,0,0,0,1,0,0) を使用して画像を変換する場合、結果の画像が正確な入力であることが期待されます (OpenCV を使用する場合と同様)。filter=Image.NEAREST を使用すると true になりますが、Image.BILINEAR または Image.BICUBIC には当てはまりません。画像は右下に移動します。

import Image
import ImageDraw
im = Image.new('L', (64, 64), 0)
draw = ImageDraw.Draw(im)
draw.line((8,8, 32,8), fill=255)
draw.line((8,8, 8,32), fill=255)
im.save('out1.png')
im = im.transform((64, 64), Image.AFFINE, (1,0,0,0,1,0), Image.BICUBIC)
im.save('out2.png')
im = im.transform((64, 64), Image.AFFINE, (1,0,0,0,1,0), Image.BICUBIC)
im.save('out3.png')
im = im.transform((64, 64), Image.AFFINE, (1,0,0,0,1,0), Image.BICUBIC)
im.save('out4.png')

out1.png out2.png out3.png out4.png

これは意図的なものですか (ドキュメントでこれについて何かを見つけることができませんでした)、または報告する価値のあるバグですか?

4

1 に答える 1