OpenCV圖像噪聲與去噪函數(shù)方法對比使用介紹
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
微信公眾號:OpenCV學(xué)堂
關(guān)注獲取更多計(jì)算機(jī)視覺與深度學(xué)習(xí)知識
一:噪聲類型與去噪聲方法介紹
圖像去噪在二值圖像分析、OCR識別預(yù)處理環(huán)節(jié)中十分重要,最常見的圖像噪聲都是因?yàn)樵趫D像生成過程中因?yàn)槟M或者數(shù)字信號受到干擾而產(chǎn)生的,常見的噪聲類型有如下:
椒鹽噪聲
高斯噪聲
泊松噪聲
乘性噪聲
OpenCV中有多個可以降低圖像噪聲、對圖像實(shí)現(xiàn)平滑濾波的函數(shù),最常見的就是均值模糊與高斯模糊,它們都可以在一定程度上減低上述幾種噪聲,另外還有中值模糊、雙邊模糊、非局部去噪等函數(shù)方法可以使用,針對特定種類的噪聲,使用有針對性函數(shù)與合理的參數(shù)可以取得較好的效果:函數(shù)名稱 去噪效果
blur
對各種噪聲都有一定的抑制作用GaussianBlur
對隨機(jī)噪聲比較好,對椒鹽噪聲效果不好medianBlur
對椒鹽噪聲效果比較好fastNlMeansDenoising
非局部去噪,速度很慢,可以調(diào)參的去噪方法fastNlMeansDenoisingColored
同上,去噪針對彩色圖像
對于fastNIMeansDenoising方法來說,只支持輸入是灰度圖像的,各個參數(shù)意義如下:
fastNlMeansDenoising (
src // 輸入圖像
dst=None, // 輸出結(jié)果
h=None, // h值越大表示去噪聲力度越大,同時細(xì)節(jié)丟失也越多,默認(rèn)10即可。
templateWindowSize=None, // 相似性權(quán)重計(jì)算窗口大小,一般為5~15之間
searchWindowSize=None// 搜索窗口,大小可以設(shè)置為相似性計(jì)算窗口大小的3~5倍即可。
)
二:程序效果演示
椒鹽噪聲圖像

中值濾波結(jié)果

非局部均值去噪聲結(jié)果

高斯噪聲圖像

中值濾波結(jié)果

非局部均值去噪聲結(jié)果

Python版本源代碼如下:
def denoise_demo():
src = cv.imread("D:/javaopencv/lenanoise2.png")
cv.imshow("input", src)
# 相似窗口大小5, 搜索窗口大小25
# h = 10, h 越大表示去噪聲效果越好,細(xì)節(jié)越丟失
dst = cv.fastNlMeansDenoisingColored(src, None, 15, 15, 7, 21)
gray= cv.cvtColor(src, cv.COLOR_BGR2GRAY)
gret = cv.fastNlMeansDenoising(gray, None, 15, 8, 25)
cv.imshow("denoise", dst)
cv.imshow("result", gret)
cv.imwrite("D:/nim_result.png", dst)
def salt_pepper_noise():
src = cv.imread("D:/javaopencv/lenanoise.png")
cv.imshow("input", src)
# ksize必須是大于1 奇數(shù)3\5\7\9\11
dst = cv.medianBlur(src, 5)
cv.imshow("denoise", dst)
cv.imwrite("D:/sp_result.png", dst)
從上面可以看出,對椒鹽噪聲中值濾波效果比較好,對高斯噪聲非局部均值去噪效果比較好!
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。
下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺」公眾號后臺回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計(jì)數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。
下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺」公眾號后臺回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個基于OpenCV實(shí)現(xiàn)20個實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計(jì)算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~
