[英]PIL Image from numpy array indexing
事实证明,这是 PIL 7.0 之前版本中的一个非常具体的错误。 我把它留在这里是因为我看到其他人遇到了同样的问题,并且对你所看到的内容没有很好的概述。 这里没有编程错误 - 解决方案是“升级 PIL”
我正在将 numpy boolean 数组(即掩码)转换为PIL
图像,并看到一个非常奇怪的行为。
# using PIL pixel access - works as expected
img = Image.new('1', (100, 100)) # '1' for 1-bit image mode
img_pixels = img.load()
for x in range(1, 99):
for y in range(1, 50):
img_pixels[x,y] = True
img
# Numpy array, turning into a PIL image.
ary = np.zeros((100,100), dtype=np.bool)
for x in range(1, 99):
for y in range(1, 50):
ary[x,y] = True
Image.fromarray(ary)
如果我检查ary
的值,则显示True
值已正确设置。
那么为什么这些图像不同呢?
编辑:
如果我为 numpy 版本反转 x 和 y,我会得到这个。 很明显,正在发生其他事情,因为如果只是颠倒了行和列,我应该得到相同的形状但垂直对齐。
ary = np.zeros((100,100), dtype=np.bool)
for x in range(1, 99):
for y in range(1, 50):
ary[y,x] = True # note that rows and columns are reversed
Image.fromarray(ary)
事实证明,这是 PIL 早期版本中的一个错误,至少已由 7.0 版修复
和
行为符合预期。 感谢@furas 的帮助测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.