【问题标题】:Placing a Laplacian Pyramid Image onto a black canvas changes the background将拉普拉斯金字塔图像放在黑色画布上会改变背景
【发布时间】:2018-11-24 23:09:29
【问题描述】:

我已经构建了一个获取图像的函数,并从中构建了一个拉普拉斯金字塔。例如,我想拍摄拉普拉斯金字塔的第一张图像并将其放在黑色画布上(使用 np.zeros 构建它)。

我已经这样做了,但我得到的是黑色画布呈现出类似于拉普拉斯图像的颜色,而不是保持黑色。

代码基本上用拉普拉斯图像替换了画布上的 NxM 点:

画布[0:768, 0:1024] = laplace_image

我想知道我到底错过了什么,因为尝试使用灰度图像会产生正确的画布。

以及可能是问题的绘图代码:

plt.figure()
plt.imshow(canvas, cmap='gray')
plt.show()

这是拉普拉斯图像中的值示例

[[0.00206756 0.00217308 0.00229568 0.00241833 0.00253975 0.0026407
  0.0027411  0.00283026 0.00289416 0.00295967 0.00302006 0.003061
  0.00308811 0.00310638 0.00311357 0.00311655 0.00312005 0.00312285
  0.00311985 0.00311802 0.003109   0.00308746 0.00304459 0.00298541
  0.00291537 0.00283966 0.00276133 0.00267244 0.00255839 0.00242822
  0.002288   0.002139  ]

 [0.00066538 0.00070738 0.00075546 0.00080446 0.00084945 0.00087207
  0.00088813 0.00091252 0.0009471  0.00099087 0.00103915 0.00107427
  0.00109442 0.00109901 0.00110466 0.00110936 0.0011094  0.0011042
  0.0010959  0.00109445 0.00109941 0.00108648 0.00105162 0.00103264
  0.00101328 0.00098499 0.00094468 0.00089966 0.00084997 0.00079252
  0.00072701 0.00066181]]

【问题讨论】:

  • 你能发布你的实际绘图代码吗?比如,你调用的函数来制作情节等等
  • @tel 已添加,谢谢
  • 嗯,你已经在使用cmap='gray',所以这是一个明显的问题已经解决了。您能否添加一个示例,说明数组 canvas 中的数据是什么样的? canvas的形状是什么?
  • Canvas 只是一个使用 np.zeroes 填充零的 np 矩阵,根据我需要放置在其中的 4-5 个图像的尺寸。如果我用灰度图像替换图像,一切正常,背景为黑色
  • 在调用imshow 之前,所选择的颜色可能取决于canvas 的确切形状和内容。如果您更具体,它将有所帮助。特别是,您能否在问题中添加一个示例,显示代表您的拉普拉斯图像的数组中的数据范围?

标签: python image numpy image-processing


【解决方案1】:

设置vmin=0 将确保canvas 中的所有零都被imshow 解释为黑色:

plt.figure()
plt.imshow(canvas, cmap='gray', vmin=0)
plt.show()

在将其输入您的颜色图之前,canvas 中的数据首先被标准化,以便最小值对应于黑色,最大值对应于白色。您可以通过将vminvmax 参数传递给imshow 来控制规范化。对于cmap=gray,任何值x <= vmin 将显示为黑色,任何值x >= vmax 将显示为白色。

如果图像数据中有任何负值,您会重现与您描述的类似的问题:

img = np.zeros((500,1000))
img[:, :250] = -2
img[:, 250:500] = 2
plt.imshow(img, cmap='gray')

传入vmin=0 将导致img 后半部分的零显示为黑色而不是灰色:

plt.imshow(img, cmap='gray', vmin=0)

【讨论】:

  • 感谢您的解决方案电话!我对图像的值进行了标准化,而不是更改 imshow 中的任何参数,现在它可以正确输出了!
猜你喜欢
  • 2018-04-15
  • 1970-01-01
  • 2012-09-16
  • 2021-03-20
  • 1970-01-01
  • 1970-01-01
  • 2020-03-24
  • 2021-11-28
  • 2019-04-13
相关资源
最近更新 更多