簡體   English   中英

相當於python OpenCv的MATLAB imshow(I,[]);

[英]Equivalent of MATLAB imshow(I,[ ]) for python OpenCv;

我正在使用OpenCv(Python)將圖像處理代碼從MATLAB轉換為Python。 下面顯示的我的原始圖像(我們的朋友Lena)使用以下命令讀取,使用imshow可以正常顯示:

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

我向圖像添加了一些高斯噪聲

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

當我顯示時(如下圖所示),我看不到帶有噪點的圖像。

cv2.imshow('image',image_with_noise)

cv2.waitKey(0)

cv2.destroyAllWindows()

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

有什么辦法可以理解或解決這個問題? 感謝您的投入。 謝謝。

原始圖片

在此處輸入圖片說明

感謝您對Miki的評論,這有助於我解決了問題。 如果其他人遇到類似問題,我會在此處發布答案。

問題是image_with_noise數據的類型。 當我執行image_with_noise.dtype ,它返回一個float64。 由於浮動圖像顯示在[0,1]范圍內,因此任何超過1的值都將顯示為白色(正好是這種情況)。

解決方案是將圖像轉換為uint8,其中顯示范圍為[0,255]。 可以在cv2中使用以下一根襯管來完成此操作

image_with_noise_uint8=cv2.convertScaleAbs(image_with_noise)

這樣,嘈雜的圖像將按預期顯示!

noisy_image

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM