gpt4 book ai didi

python - 将拉普拉斯金字塔图像放置在黑色 Canvas 上会改变背景

转载 作者:行者123 更新时间:2023-12-01 08:42:05 26 4
gpt4 key购买 nike

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

我已经这样做了,但我得到的是黑色 Canvas 呈现出与拉普拉斯图像类似的颜色,而不是保持黑色。 enter image description here

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

Canvas [0:768, 0:1024] = laplace_image

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

enter image description here

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

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]]

最佳答案

设置vmin=0将确保 canvas 中全为零被 imshow 解释为黑色:

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

在将数据输入颜色图之前, canvas 中的数据首先进行归一化,使得最小值对应于黑色,最大值对应于白色。您可以通过传入 vmin 来控制标准化。和vmax imshow 的参数。对于 cmap=gray ,任何值 x <= vmin将显示为黑色,任何值 x >= vmax将显示为白色。

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

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

enter image description here

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

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

enter image description here

关于python - 将拉普拉斯金字塔图像放置在黑色 Canvas 上会改变背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53458691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com