目錄
一、圖像噪點消除噪聲:
1、概念
2、均值濾波
3、方框濾波
4 、高斯濾波
5、中值濾波
6、雙邊濾波
7、總結
一、圖像噪點消除噪聲:
? ? ? ? 1、概念
????????指圖像中的一些干擾因素,通常是由圖像采集設備、傳輸信道等因素造成的,表現為圖像中隨機的亮度,也可以理解為有那么一些點的像素值與周圍的像素值格格不入。常見的噪聲類型包括高斯噪聲和椒鹽噪聲。高斯噪聲是一種分布符合正態分布的噪聲,會使圖像變得模糊或有噪點。椒鹽噪聲則是一些黑白色的像素值分布在原圖像中
????????濾波器:也可以叫做卷積核,與自適應二值化中的核一樣,本身是一個小的區域,有著特定的核值,并且工作原理也是在原圖上進行滑動并計算中心像素點的像素值。濾波器可分為線性濾波和非線性濾波,線性濾波對鄰域中的像素進行線性運算,如在核的范圍內進行加權求和,常見的線性濾波器有均值濾波、方框濾波、高斯濾波等。非線性濾波則是利用原始圖像與模板之間的一種邏輯關系得到結果,常見的非線性濾波器中有中值濾波器、雙邊濾波器等
濾波與模糊聯系與區別:
????????它們都屬于卷積,不同濾波方法之間只是卷積核不同(對線性濾波而言)
????????低通濾波器是模糊,高通濾波器是銳化
????????低通濾波器就是允許低頻信號通過,在圖像中邊緣和噪點都相當于高頻部分,所以低通濾波? ? ? ? ?器用于去除噪點、平滑和模糊圖像。高通濾波器則反之,用來增強圖像邊緣,進行銳化處理。
(注意:椒鹽噪聲可以理解為斑點,隨機出現在圖像中的黑點或白點;高斯噪聲可以理解為拍攝圖片時由于光照等原因造成的噪聲)
? ? ? ? 2、均值濾波
????????????????均值濾波是一種最簡單的濾波處理,它取的是卷積核區域內元素的均值,3×3的濾波核如下:
? ? ? ? 3、方框濾波
方框濾波跟均值濾波很像,如3×3的濾波核如下:
cv2.boxFilter(img, ddepth, ksize, normalize)
ddepth:輸出圖像的深度,-1代表使用原圖像的深度
????????圖像深度是指在數字圖像處理和計算機視覺領域中,每個像素點所使用的位數,圖像深度決? ? ? ? ? ? 定了圖像能夠表達的顏色數量或灰度級
ksize:代表卷積核的大小,(ksize=3,則代表使用3×3的卷積核)
normalize:當normalize為True的時候,方框濾波就是均值濾波,上式中的a就等于1/9;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?normalize為False的時候,a=1,相當于求區域內的像素和
(其濾波的過程與均值濾波一模一樣,都采用卷積核從圖像左上角開始,逐個計算對應位置的像素值,并從左至右、從上至下滑動卷積核,直至到達圖像右下角,唯一的區別就是核值可能會不同 )
? ? ? ?4 、高斯濾波
高斯濾波是一種常用的圖像處理技術,主要用于平滑圖像、去除噪聲。它通過使用高斯函數(正態分布)作為卷積核來對圖像進行模糊處理
前面兩種濾波方式,卷積核內的每個值都一樣,也就是說圖像區域中每個像素的權重也就一樣。高斯濾波的卷積核權重并不相同:中間像素點權重最高,越遠離中心的像素權重越小
我們還是以3*3的卷積核為例,其核值如下所示:
得到了卷積核的核值之后,其濾波過程與上面兩種濾波方式的濾波過程一樣,都是用卷積核從圖像左上角開始,逐個計算對應位置的像素值,并從左至右、從上至下滑動卷積核,直至到達圖像右下角,唯一的區別就是核值不同
cv2.GaussianBlur(img, ksize, sigmaX)
ksize:代表卷積核的大小,(ksize=3,則代表使用3×3的卷積核
sigmaX:就是高斯函數里的值,σx值越大,模糊效果越明顯。高斯濾波相比均值濾波效率要慢,但可以有效消除高斯噪聲,能保留更多的圖像細節,所以經常被稱為最有用的濾波器
? ? ? ? 5、中值濾波
中值又叫中位數,是所有數排序后取中間的值。中值濾波沒有核值,而是在原圖中從左上角開始,將卷積核區域內的像素值進行排序,并選取中值作為卷積核的中點的像素值
中值濾波就是用區域內的中值來代替本像素值,所以那種孤立的斑點,如0或255很容易消除掉,適用于去除椒鹽噪聲和斑點噪聲。中值是一種非線性操作,效率相比前面幾種線性濾波要慢
?
? ? ? ? 6、雙邊濾波
?模糊操作基本都會損失掉圖像細節信息,尤其前面介紹的線性濾波器,圖像的邊緣信息很難保留下來。然而,邊緣(edge)信息是圖像中很重要的一個特征,所以這才有了雙邊濾波
雙邊濾波的基本思路是同時考慮將要被濾波的像素點的空域信息(周圍像素點的位置的權重)和值域信息(周圍像素點的像素值的權重)。為什么要添加值域信息呢?是因為假設圖像在空間中是緩慢變化的話,那么臨近的像素點會更相近,但是這個假設在圖像的邊緣處會不成立,因為圖像的邊緣處的像素點必不會相近。因此在邊緣處如果只是使用空域信息來進行濾波的話,得到的結果必然是邊緣被模糊了,這樣我們就丟掉了邊緣信息,因此添加了值域信息。
雙邊濾波采用了兩個高斯濾波的結合,一個負責計算空間鄰近度的權值(也就是空域信息),也就是上面的高斯濾波器,另一個負責計算像素值相似度的權值(也就是值域信息),也是一個高斯濾波器
cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace)
d:過濾時周圍每個像素領域的直徑
sigmaColor:在color space(色彩空間)中過濾sigma。參數越大,那些顏色足夠相近的的顏色的影響越大。較大的sigmaColor
值意味著更大的顏色差異將被允許參與到加權平均中,從而使得顏色相近但不完全相同的像素也能夠相互影響
sigmaSpace:在coordinate space(坐標空間)中過濾sigma。這個參數是坐標空間中的標準差,決定了像素位置對濾波結果的影響程度。它定義了在圖像的空間域中,一個像素可以影響周圍像素的最大距離
關于2個sigma參數:
簡單起見,可以令2個sigma的值相等;
如果他們很小(小于10),那么濾波器幾乎沒有什么效果;
如果他們很大(大于150),那么濾波器的效果會很強,使圖像顯得非常卡通化。
關于參數d:
過大的濾波器(d>5)執行效率低。
對于實時應用,建議取d=5;
對于需要過濾嚴重噪聲的離線應用,可取d=9;
????????7、總結
????????????????在不知道用什么濾波器好的時候,優先高斯濾波,然后均值濾波。
????????????????斑點和椒鹽噪聲優先使用中值濾波。
????????????????要去除噪點的同時盡可能保留更多的邊緣信息,使用雙邊濾波。
????????????????線性濾波方式:均值濾波、方框濾波、高斯濾波(速度相對快)。
????????????????非線性濾波方式:中值濾波、雙邊濾波(速度相對慢)。