均值濾波是一種線性濾波器,在去噪的同時 會造成邊緣模糊問題,而且均值濾波僅對高斯噪聲效果較好,對於椒鹽噪聲效果一般;
中值濾波是一種順序濾波器,是非線性的,對於椒鹽噪聲效果較好,而且 保邊 能力很強;
椒鹽噪聲:又稱脈沖噪聲,是一種隨機出現的白點或者黑點,白點稱為鹽噪聲,黑點稱為椒噪聲;
示例
import cv2 as cv import numpy as np import scipy.signal as signal k = 7 img = cv.imread('noise.png') img_mean = cv.blur(img, ksize=(k, k)) img_med = cv.medianBlur(img, ksize=k) img_med_scipy = signal.medfilt(img, kernel_size=(k, k, 3)).astype(np.uint8) merge = np.hstack([img, img_mean, img_med, img_med_scipy]) cv.imshow('img', merge) cv.waitKey(0)
依次為 椒鹽噪聲圖、均值濾波圖、opencv中值濾波圖、scipy中值濾波圖; (k別太小,否則效果不明顯)
很明顯,中值濾波圖 要 稍微清晰 一些,證明 保邊能力強;
原理就不講了
中值濾波就是通過求小窗口中的中位值來取代當前位置的方式來濾波
多級中值濾波
多個中值濾波 進行 多級級聯 實現更好的 濾波效果,
級聯方式比較靈活,如下圖就是一種 級聯方式
先在窗口中定義一個'+'和'X'形的窗口,然后分別求出這兩個窗口的中位值,然后結合當前窗口的中心點就有3個候選值,再從這三個值中求出一個中位值作為濾波后的結果
再如 來自參考論文
求出四個區域的中值,再求其中值,或者均值(論文里求均值)
多級中值混合濾波
均值濾波 和 中值濾波 各有優勢,可將二者結合,形成混合濾波
算法流程:
- 求出豎直方向相鄰三個點的均值和水平方向相鄰三個點的均值,再結合當前點,用這三個點再求一個中位值;
- 求出45°和135°方向上的均值,然后結合當前點求出一個中位值;
- 兩個中位值結合當前點組成新的數組,最后求一個中位值作為當前點的值完成濾波。
多級中值有理混合濾波
算法流程
- 求出'+'形和'X'形的窗口的中位值;
- 對'+'形窗口再利用CWMF求出一個值,CWMF是WMF的一種特殊情況,就是只對中心點進行加權;
- 對以上求出的三個參數用一下公式計算出一個新的值作為濾波后的值
快速自適應加權中值濾波
見參考論文
改進的自適應多級加權中值濾波
見參考論文
其實還有很多變化,但都不難,多查閱些論文吧,有些寫的不清不楚,看看就行了
該圖片來自論文 《_應用於圖像處理的自適應中值濾波算法的研究》
論文摘錄
1. 中值濾波 可對 隨機噪聲 起到良好的去除效果,在信號恢復中已得到廣泛應用
參考資料:
https://zhuanlan.zhihu.com/p/425197766 NR基礎篇下——中值濾波、多級中值濾波、多級中值混合濾波、加權中值濾波、中值有理濾波
《_基於圖像識別理論的智能交通系統關鍵技術研究》 吉林大學博士論文 2016 改進的自適應多級加權中值濾波 用於 車牌圖像去噪
《_圖像快速自適應加權中值濾波》
《_應用於圖像處理的自適應中值濾波算法的研究》