gpt4 book ai didi

python - 等效于 Python OpenCv 的 MATLAB imshow(I,[ ]);

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:35 25 4
gpt4 key购买 nike

我正在使用以下方法将图像处理代码从 MATLAB 转换为 PythonOpenCV( python )。下面显示的我的原始图像(我们的 friend Lena)使用以下命令阅读,使用 imshow 显示正常:

image = cv2.imread('Lena.bmp',0)

我给图像添加了一些高斯噪声

image_with_noise = image + 20*np.random.randn(256,256)

当我执行 imshow(如下所示)时,我没有看到我预期的带有噪点的图像。

cv2.imshow('image',image_with_noise)

cv2.waitKey(0)

cv2.destroyAllWindows()

但是,类似的 MATLAB 命令 imshow(image, [ ] ) 似乎工作正常。

有什么办法可以理解或解决这个问题吗?感谢您的投入。谢谢。

Original image

enter image description here

最佳答案

感谢 Miki 的评论帮助我解决了问题。我在这里发布答案以防其他人遇到类似问题。

问题是 image_with_noise 数据的类型。当我做image_with_noise.dtype,它返回一个 float64。由于 float 图像显示在 [0,1] 范围内,任何超过 1 的值都显示为白色(这正是发生的情况)。

解决方案是将图像转换为显示范围为 [0,255] 的 uint8。这可以在 cv2 中使用以下一个衬垫来完成

image_with_noise_uint8=cv2.convertScaleAbs(image_with_noise)

有了这个,嘈杂的图像按预期显示!

noisy_image

关于python - 等效于 Python OpenCv 的 MATLAB imshow(I,[ ]);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324421/

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