1

在使用 PIL(1.1.7,Portable Python 2.7.5.1,Windows 7)转换图像时,我偶然发现了一种我觉得很奇怪的行为。当使用单位矩阵 (1,0,0,0,1,0,0) 转换图像时,我希望得到的图像是精确的输入(就像使用 OpenCV 时一样)。使用 filter=Image.NEAREST 成立,但不适用于 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

0

使用当前版本的 Pillow(我现在使用的是 5.0.0 版),这似乎已修复。:)

于 2018-02-07T09:14:52.563 回答