为什么 PIL 和 matplotlib 在这里创建完全不同的图像?

伊斯基·马修斯

我正在从一个数组中创建一个图像,而 matplotlib 只能在内核崩溃之前给出一个特定的“dpi”(例如,对于 dpi=8000 绘图,内核会立即死亡)。因此我决定用 PIL 制作图像 - 但它完全搞砸了。

我创建了一个 MCVE:

a = np.zeros([5,5])
a[:,2] = 255
a = np.repeat(a[...,np.newaxis], 3, axis=2)

如果我们通过把这个matplotlib

img = plt.imshow(a)
plt.show()

我们得到这个图像:极其简单的预期情节。

但是如果我们使用类似的 PIL 代码

img = Image.fromarray(a, "RGB")
img.save("Stuff.png")

我们得到这个图像:

带有奇怪颜色的疯狂图像。

(此处的图像已截屏并放大,因为它实际上只有 5x5 像素)

为什么是这样?!这只是一个错误吗?!

编辑:这个问题现在已经解决了,多亏了这个和上一个问题,我的计算速度更快,更像 pythonic。感谢 SO,这里是 Mandelbrot Set 的 400 兆像素图像的屏幕截图,该图像基于 C 的象限着色,Z 点在它逃逸时结束,现在可以在 2 分钟内计算出来:

在此处输入图片说明

9769953

您使用 64 位浮点值作为输入,因为这是np.zeros(). fromarray()“RGB”模式需要 3 x 8 位像素。

尝试:

img = Image.fromarray(a.astype(np.uint8), "RGB")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么 else if 和 else 在这里表现不同?

来自分类Dev

PIL图像和matplotlib图获得png图像的饱和黑白

来自分类Dev

为什么 *import ...* 和 *from x import y* 习语在这里表现如此不同?

来自分类Dev

为什么使用PIL和pytorch对图像进行双线性缩放会产生不同的结果?

来自分类Dev

Python PIL - 为什么我不能在这里使用 ImageOps.colorize。?

来自分类Dev

set-$ args`行在这里做什么,为什么它在Zsh和Bash之间表现不同?

来自分类Dev

为什么librosa图与matplotlib和audacity不同

来自分类Dev

为什么PIL.ImageChops.difference和np.array差异会有不同的结果?

来自分类Dev

'(?='和')'在这里做什么?

来自分类Dev

为什么VS和gcc在这里调用不同的转换运算符(常量与非常量)?

来自分类Dev

为什么Scala的'String'对象的迭代器和'List [Int]'对象的迭代器在这里表现不同?

来自分类Dev

为什么/除法和乘法在这里一样快?

来自分类Dev

为什么参数自举偏差和标准误差在这里为零?

来自分类Dev

为什么我不能在这里访问和setState?

来自分类Dev

为什么在这里优先选择位运算和乘法而不是条件?

来自分类Dev

__call__ 或 __init__ 在这里调用?不要理解哪个和为什么

来自分类Dev

为什么xsl:when和xsl:value-of在这里不起作用?

来自分类Dev

为什么 to_be_bytes() 和 to_le_bytes() 与我在这里期望的相反?

来自分类Dev

为什么 Swing 延迟在这里“完全绘制”JFrame?

来自分类Dev

kivy 图像和 PIL 图像

来自分类Dev

为什么在这里我得到了不同的结果?

来自分类Dev

为什么awk不在这里创建文件?

来自分类Dev

PIL:叠加不同尺寸和纵横比的图像

来自分类Python

为什么PIL产生的JPEG图像质量如此差?

来自分类Dev

为什么我的图像会变成方形 PIL?

来自分类Dev

PIL Image从numpy数组构造奇怪的图像-为什么?

来自分类Dev

为什么opencv转换颜色空间不同于pil?

来自分类Dev

PIL 到 numpy 和 PIL 到張量是不同的

来自分类Dev

为什么gcc和clang会为成员函数模板参数生成完全不同的代码?

Related 相关文章

  1. 1

    为什么 else if 和 else 在这里表现不同?

  2. 2

    PIL图像和matplotlib图获得png图像的饱和黑白

  3. 3

    为什么 *import ...* 和 *from x import y* 习语在这里表现如此不同?

  4. 4

    为什么使用PIL和pytorch对图像进行双线性缩放会产生不同的结果?

  5. 5

    Python PIL - 为什么我不能在这里使用 ImageOps.colorize。?

  6. 6

    set-$ args`行在这里做什么,为什么它在Zsh和Bash之间表现不同?

  7. 7

    为什么librosa图与matplotlib和audacity不同

  8. 8

    为什么PIL.ImageChops.difference和np.array差异会有不同的结果?

  9. 9

    '(?='和')'在这里做什么?

  10. 10

    为什么VS和gcc在这里调用不同的转换运算符(常量与非常量)?

  11. 11

    为什么Scala的'String'对象的迭代器和'List [Int]'对象的迭代器在这里表现不同?

  12. 12

    为什么/除法和乘法在这里一样快?

  13. 13

    为什么参数自举偏差和标准误差在这里为零?

  14. 14

    为什么我不能在这里访问和setState?

  15. 15

    为什么在这里优先选择位运算和乘法而不是条件?

  16. 16

    __call__ 或 __init__ 在这里调用?不要理解哪个和为什么

  17. 17

    为什么xsl:when和xsl:value-of在这里不起作用?

  18. 18

    为什么 to_be_bytes() 和 to_le_bytes() 与我在这里期望的相反?

  19. 19

    为什么 Swing 延迟在这里“完全绘制”JFrame?

  20. 20

    kivy 图像和 PIL 图像

  21. 21

    为什么在这里我得到了不同的结果?

  22. 22

    为什么awk不在这里创建文件?

  23. 23

    PIL:叠加不同尺寸和纵横比的图像

  24. 24

    为什么PIL产生的JPEG图像质量如此差?

  25. 25

    为什么我的图像会变成方形 PIL?

  26. 26

    PIL Image从numpy数组构造奇怪的图像-为什么?

  27. 27

    为什么opencv转换颜色空间不同于pil?

  28. 28

    PIL 到 numpy 和 PIL 到張量是不同的

  29. 29

    为什么gcc和clang会为成员函数模板参数生成完全不同的代码?

热门标签

归档