【问题标题】:Why isn't matplotlib plotting all black lines in this grayscale image?为什么 matplotlib 不在此灰度图像中绘制所有黑线?
【发布时间】:2020-07-17 23:44:10
【问题描述】:

我有以下图片(尺寸为 1151x781)

如果我尝试使用 matplotlib 绘制此图像,如下所示

import matplotlib.pyplot as plt

img = plt.imread("this_image.png")
plt.figure(figsize=(10, 7))
plt.imshow(img, cmap="gray")

结果如下

如果我通过从终端或 jupyter 笔记本中打开 Python shell 来执行此代码,就会发生这种情况。在绘图之前添加行 matplotlib.use('TkAgg') 似乎没有帮助。

我在 macOS Catalina (10.15.4) 上使用 Python 3.7.1 和 Matplotlib 3.0.2 进行了尝试。

你也有同样的经历吗?解决方案是什么?

请不要告诉我解决方法是改变图形的大小!因为我知道,通过改变图形的大小,这个问题可以消失或出现新的黑线。当然,我不想浪费时间尝试不同的尺寸来了解哪些是可行的,而且很明显,这种解决方案不切实际且不灵活。

【问题讨论】:

  • 可以分享一下图片文件吗?
  • @user27286 我已经在上面的帖子中分享了它。只需下载第一张图片。
  • 很有趣
  • 在 imshow 中尝试插值=“hanning”。
  • @JodyKlymak 这似乎(部分)解决了问题,虽然线条看起来不再是黑色,而是灰色。

标签: python python-3.x macos matplotlib


【解决方案1】:

改变图形的dpi:

img = plt.imread('this_image.png')
plt.figure(figsize=(10,7), dpi=300)
plt.imshow(img, cmap='gray')

输出:

【讨论】:

  • 嗯,这个解决方案类似于改变图形大小的解决方案,尽管这个解决方案更可预测。
猜你喜欢
  • 2011-02-04
  • 2020-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 2013-01-11
  • 2018-03-16
  • 1970-01-01
相关资源
最近更新 更多