图像基本群运算--滤波
?????? 工業和消費領域,圖像獲取主要依賴于電子元件CMOS和CCD,以光電轉化的形式轉化為電信號。信號在傳輸的過程中會因為電信號的本身干擾,發生失真。常見的噪聲有椒鹽噪聲、高斯白噪聲等。
??????? 一般來說,各種圖像噪聲是有模式的,因此可以用一定模式生成的模板使用反向卷積處理的方法,在一定程度上去除噪聲。
1、高斯白噪聲
???????? 一般性的光線教暗容易使圖像產生高斯白噪聲,噪聲產生并非嚴格遵循高斯分布,一般為高斯分布的近似形式。
?????????一般沒有明顯的顆粒感,為隨機噪聲。
?????????抵消高斯噪聲影響的方法一般為使用高斯平滑濾波器,高斯平滑核一般取高斯分布:
????????????????????????????????? F(x, y, z) = 1/2pi*u^2? *Exp(-(x^2+ y^2 ) /2*u^2 )
?????????一個五層高斯卷積核:
?????????????? [ 0.002 ?????? ? ?? ?
???????????????? 0.013 ?????0.060 ??? ? ? ?
???????????????? 0.220 ???? 0.098 ???? 0.162
?????????????????????? ? ? ?? ???? ? ? ??????????????????? 0.096
?????? 加速:快速卷積算法為把一次二維卷積拆成兩次一維卷積,使用向量化進行并行計算。
??????? 使用OpenCV:
??????? 獲得高斯核: Mat getGaussianKernel(int ksize, double sigma, int ktype=CV_64F );
??????? 使用高斯核:
Mat img, gray;if( argc != 2 && !(img=imread(argv[1], 1)).data) return -1;cvtColor(img, gray, CV_BGR2GRAY);GaussianBlur( gray, gray, Size(9, 9), 2, 2 ); // smooth it, otherwise a lot of false circles may be detected2.均值濾波:
?????? 使用一個均值濾波器來模糊圖像來模糊噪聲,效果當然是不太好的。
??????? 一個三層卷積核:
?????????????? [ 1????? 1??????? 1
???????????????? 1????? 1 ????? 1
???????????????? 1 ???? 1 ????? 1 ]? *?? 1/9
??????? 使用OpenCV:C++: ?? void medianBlur(InputArray src, OutputArray dst, int ksize)
3.椒鹽噪聲:
?????? 也稱為脈沖噪聲,是圖像中經常見到的一種噪聲,它是一種隨機出現的孤立白點或者黑點,可能是亮的區域有黑色像素或是在暗的區域有白色像素(或是兩者皆有)。鹽和胡椒噪聲的成因可能是影像訊號受到突如其來的強烈干擾而產生、類比數位轉換器或位元傳輸錯誤(傳輸干擾、解碼誤差)等。例如失效的感應器導致像素值為最小值,飽和的感應器導致像素值為最大值。
??????? 轉自于?維基:
?????? 常用的去除這種噪聲的有效手段是使用中值濾波器。下面的實例圖像分別是原始圖像、帶有椒鹽噪聲的圖像、經過平均濾波器修復的圖像以及經過中值濾波器修復的圖像。
???????效果:憑視覺感受一下椒鹽的顆粒大小Pixels,把中值濾波器的卷積核的Pixels個中間像素設置為0,一般能達到效果。
?????? 一個三層卷積核:
?????????????? [ 1????? 1??????? 1
???????????????? 1?????? 0 ????? 1
???????????????? 1 ???? 1 ?????? 1 ]? *?? 1/8
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????????????????????????????????????????
非線性處理方式
一般使用非線性濾波器處理椒鹽噪聲的方法,以下將簡介三種解決方法。
異常值偵測
異常偵測(Anomaly detection)有時稱為異常值偵測(Outlier detection),如其名所隱含的,在給定的資料集合中,它將偵測在已有的規律中表現異常者。現今常用的方法以計算距離為基礎的K-近鄰算法或是機器學習中的支持向量機等,下圖的例子以平均數為基礎,在3X3的遮罩中,計算每個像素的平均值,與平均值相差絕對值ε的像素值將被平均值取代,其中,遮罩大小和誤差值ε則是和輸入圖片內容相關。
Outlier detection的缺點在于用平均值替代像素值,會造成像素值單一的背景出現異常的雜點(如天空),雖然相較于原本的鹽與胡椒噪聲不明顯,但仍然可以看出噪聲。
中值濾波器
中值濾波器(Median filtering) 如其名所隱含的,它將一個像素的值用該像素鄰域中強度值的中間值來取代(計算中間值的過程中,也會將該像素的原始值包含),中值濾波器在處理鹽和胡椒噪聲上能提供絕佳的噪聲降低效能。中值濾波器所衍伸的問題是計算速率,舉例而言,要計算5個元素的中值濾波器的計算過程如下:
????????? 先取最小值再取最大值可以得到中間值,但做最小值的過程中,需要先考慮10個可能的選項(),由于計算速度的考量,因此促進了Pseudo-median filtering (PMED)的產生。 中值濾波器的缺點為讓邊緣模糊、較不銳利,由于使用中間值替代向素值,在像素值容易有較大變化的地方,如邊界或細節的地方,會被模糊。
偽中值濾波器
為了改進中值濾波器的計算速率,偽中值濾波器(Pseudo-median filtering) 以近似的方法算出中間值,以5個元素的偽中值濾波器為例,
其中,MAXMIN會低估中間值,而MINMAX會高估中間值,將兩者平均起來以近似中間值。應用在2D的偽中值濾波器可以有許多取法,例如:
??????????????? ? ? ??
4.雙邊濾波器
???????? 參考:http://blog.csdn.net/abcjennifer/article/details/7616663
??????? 源于高斯模糊方法,用于保邊去噪。方法為:當亮度差值過大時,通過下降濾波器權重來防止邊界模糊,算是一個動態濾波器。
Matlab實現保邊濾波器的函數是:
w = 5; % bilateral filter half-width sigma = [3 0.1]; % bilateral filter standard deviations N =double(Img)/255; S =bfilter2(N,w,sigma);OpenCV實現保邊濾波器的函數是: int d=2; double sigmaColor=0.1; double sigmaSpace=0.3; int borderType = BORDER_DEFAULT; Mat pFilterMatB = Mat(Size(pGrayMat.rows, pGrayMat.cols), CV_8SC1);cv::bilateralFilter(pGrayMat, pFilterMatB, d, sigmaColor, sigmaSpace, borderType);
5、實驗結果:
參考鏈接:圖像濾波常見方法原理總結及VC下實現
????
??? 自己寫的Conv2濾波器效果還是不如Matlab,差距太明顯了...
參考:基本噪聲類型-轉自于百科
白噪聲:白噪聲(white noise)是指功率譜密度在整個頻域內均勻分布, 所有頻率具有相同能量密度的隨機噪聲。
??? ? 從我們耳朵的頻率響應聽起來它是非常明亮的“咝”聲(每高一個八度,頻率就升高一倍。因此高頻率區的能量也顯著增強)。
????? 起源于,70年代中期國際上新創立的無窮維Schwartz廣泛函數理論。具有:功率譜密度恒定:S(ω)=S0;信號自相關:R(τ)=S0δ(τ);數學期望:E(X(t)]=0;均方值:E[X(t)^2]<∞;其中δ(τ)是Dirac函數。的隨機噪聲,中文翻譯為白噪聲。
?????? 白噪聲不是嚴格意義上的噪聲,而是一種良好的信號頻率模式。
?????? 特點:它的二階矩不相關,一階矩為常數,是指先后信號在時間上的相關性。它的幅度遵從高斯(正態)分布, 而功率譜類似于白色光譜,均勻分布于整個頻率軸 , 故稱為白噪聲。白噪聲主要包含三類:無源器件,如電阻、饋線等類導體中電子布朗運動引起的熱噪聲;有源器件,如真空電子管和半導體器件中由于電子發射的不均勻性引起的散粒噪聲;以及宇宙天體輻射波對接收機形成的宇宙噪聲。其中前兩類是主要的。
高斯白噪聲:如果一個噪聲,它的幅度分布服從高斯分布,而它的功率譜密度又是均勻分布的,則稱它為高斯白噪聲。
脈沖噪聲( 椒鹽噪聲 ):脈沖噪聲(impulsive noise)是非連續的,由持續時間短和幅度大的不規則脈沖或噪聲尖峰組成。產生脈沖噪聲的原因多種多樣,其中包括電磁干擾以及通信系統的故障和缺陷,也可能在通信系統的電氣開關和繼電器改變狀態時產生。
瑞利噪聲 :瑞利噪聲是指它的概率密度函數服從瑞利分布的一類噪聲。瑞利分布(Rayleigh Distribution):當一個隨機二維向量的兩個分量呈獨立的、有著相同的方差的正態分布時,這個向量的模呈瑞利分布。 ????? 特點:尖峰、拖尾Erlang噪聲:Erlang噪聲又稱作伽馬(愛爾蘭)噪聲,服從了伽馬曲線的分布。 ??????
參考:圖像空域噪聲與二維降噪算法.
總結
以上是生活随笔為你收集整理的图像基本群运算--滤波的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu下串口工具
- 下一篇: 康佳集团亮相中国移动大会-中国移动康佳电