【问题标题】:matplotlib image shows in black and white, but I wanted graymatplotlib 图像以黑白显示,但我想要灰色
【发布时间】:2017-10-15 16:46:38
【问题描述】:

我有一个小代码示例可以在 matplotlib 中绘制图像,图像如下所示:

请注意黑框中的图像有黑色背景,而我想要的输出是这样的:

我绘制图像的代码是这样的:

plt.subplot(111)
plt.imshow(np.abs(img), cmap = 'gray')
plt.title('Level 0'), plt.xticks([]), plt.yticks([])
plt.show()

我的理解是cmap=grey应该以灰度显示。下面是正在绘制的矩阵img 的 sn-p:

[[ 192.77504036 +1.21392817e-11j  151.92357434 +1.21278246e-11j
   140.67585733 +6.71014111e-12j  167.76903747 +2.92050743e-12j
   147.59664180 +2.33718944e-12j   98.27986577 +3.56896094e-12j
    96.16252035 +5.31530804e-12j  112.39194666 +5.86689097e-12j....

我在这里错过了什么?

【问题讨论】:

  • @Mani:使用gray_r 没有帮助。它显示为带有黑色边缘的部分白色。
  • @CyprUS 该链接(和matplotlib.org/examples/color/colormaps_reference.html)似乎暗示了Greys_r。不确定_r。你可以两个都试试吗?不过我不认为这是问题所在。
  • @Mani :实际上我尝试了所有Greys_rGreys', gray`和gray_r。似乎没有任何效果
  • @CyprUS 您是否尝试过重新调整[0, 1] 之间的数据?

标签: python matplotlib


【解决方案1】:

就我而言,我想要的颜色(灰色)实际上是“负”像素。从图像矩阵中减去 128 会使像素范围从 0-255 变为 -128 到 +127。负像素由包 matplotlib 以“灰色”颜色显示。

val = np.subtract(imageMatrix,128)
plt.subplot('111')
plt.imshow(np.abs(val), cmap=plt.get_cmap('gray'),vmin=0,vmax=255)
plt.title('Image'), plt.xticks([]), plt.yticks([])
plt.show()

我会将我自己的答案标记为已接受,因为之前接受的答案并没有谈到以负比例处理像素。

【讨论】:

    【解决方案2】:

    问题似乎是您有三个通道,而应该只有一个通道,并且数据应该在[0, 1] 之间进行归一化。我使用这个得到了正确的灰度图像:

    import matplotlib.pyplot as plt
    import matplotlib.image as mpimg
    import numpy as np
    
    img = mpimg.imread('Lenna.png')
    # The formula below can be changed -- the point is that you go from 3 values to 1
    imgplot = plt.imshow(np.dot(img[...,:3], [0.33, 0.33, 0.33]), cmap='gray')
    plt.show()
    

    这给了我:

    另外,数据快照:

    [[ 0.63152942  0.63152942  0.63800002 ...,  0.64705883  0.59658825 0.50341177]
     [ 0.63152942  0.63152942  0.63800002 ...,  0.64705883  0.59658825 0.50341177]
     [ 0.63152942  0.63152942  0.63800002 ...,  0.64705883  0.59658825 0.50341177]
     ...]
    

    【讨论】:

    • 我会试试这个并告诉你
    猜你喜欢
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    相关资源
    最近更新 更多