【问题标题】:Matplotlib output image qualityMatplotlib 输出图像质量
【发布时间】:2018-08-25 14:25:44
【问题描述】:

将 png 图像转换为 numpy 数组并转换回 png 图像后,质量会降低。如果单击第二张图像,您可以看到它的全尺寸。我认为问题在于查看转换后的图像时没有激活抗锯齿或其他过滤器。

转换前:

转换后:

我试过了:

plt.imshow(img2, cmap = 'gray')
plt.plot(aa = True)
plt.show()

激活抗锯齿但它似乎没有任何改变。有没有办法让第二张图片和第一张一样漂亮?

【问题讨论】:

  • 绘图有 2 个参数,也适用于图像。你应该看看:figsizedpi
  • 我不知道为什么,但是 matplotlib 将图像分辨率从 704x490 降低到 562x394。我可以plt.savefig('file.png', bbox_inches='tight', dpi =125 ) 生成分辨率为 703x493 的图像。这已经足够好了,有没有办法在转换过程中保持我的图像分辨率?
  • @ArturMüllerRomanov 1. 你的图像有 dpi 96,这就足够了。 2.要保存图像分辨率,隐藏刻度等,请检查this answer

标签: python matplotlib


【解决方案1】:

嗯,我想我找到了最简单的方法。

img1 = plt.imread(impath1, format = 'int32')
plt.imsave('test.png', img1, cmap = 'gray')

生成完全相同的图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2016-11-28
    • 2012-02-19
    • 1970-01-01
    • 2011-07-31
    • 2011-03-08
    相关资源
    最近更新 更多