本文通過通俗易懂的文字解釋了圖像卷積、邊緣提取以及濾波去燥的概念及其分類。
一、圖像卷積
現(xiàn)在有一張圖片 f(x,y) 和一個kernel核 w(a,b)。
卷積(Convolution):卷積運算就是對于圖像 f(x,y) 中的每個像素,將其作為中心像素,計算它及其鄰域像素和kernel核 w(a,b)對應位置元素的乘積,然后把結果相加到一起,得到的值就作為該中心像素的新值,這樣就完成了一次卷積運算。然后將kernel向下或向左平移一位繼續(xù)計算每個像素的新值,直到遍歷完整個圖像。
如下圖所示:
卷積運算的公式如下:
還有一個概念是互相關(Cross-correlation),流程和卷積類似,區(qū)別在于卷積在運算前需要把kernel圍繞中心旋轉180度(即做一次上下翻轉(filp)和一次左右翻轉),而互相關則不需要。
互相關的公式如下:
兩者的具體區(qū)別可以查看 卷積運算和相關運算的區(qū)別與物理含義。
互相關主要用于計算兩個圖像的相關性(主要用于圖像配準)。因為我們平時接觸的卷積核大都是關于x軸和y軸對稱的,所以卷積和互相關在這種情況下沒什么區(qū)別。
中心像素在圖像的邊緣時,沒有足夠的像素與kernel進行運算,有兩個方法:
最外面的一圈像素不進行計算,如果圖像非常大,丟掉圖像邊緣的一圈對結果影響不大。
更好的辦法是人為地在圖像四周插入一圈像素(比如最近鄰插值)。
圖像的處理結果可能超出值域范圍(0-255),則小于0的值視作0,大于255的視作255就行了。
二、圖像梯度
梯度的方向是函數(shù) f(x,y) 變化最快的方向,當圖像中存在邊緣時,有一些相鄰像素的灰度值變化比較大,即一定有較大的梯度值。所以可以求圖像的梯度來確定圖像的邊緣。
分別對圖像按照x方向和y方向進行求偏導,得到x梯度圖和y梯度圖。梯度是矢量,存在幅值和方向,下面這個公式表示了圖像的梯度:
梯度的幅值(magnitude)為:
梯度的方向(direction)為:
梯度方向會取絕對值,因此得到的角度范圍是 [0,180°]。
導數(shù)的含義就是計算像素灰度值的變化率,對于離散圖像而言,在圖像上使用一階差分來計算相鄰像素之間的差值,從而得到圖像的梯度。
也可以使用二階差分求梯度:
下面是一個邊緣的例子:
上面是對斜坡區(qū)域進行求導,斜坡區(qū)域是圖像中最常見的區(qū)域,因為圖片中的大部分邊緣都不是突變的而是漸變的,對于斜坡區(qū)域,一階導數(shù)將斜坡變成了平坦區(qū)域即變成了粗線,二階導數(shù)將斜坡變成了兩條中間存在平臺區(qū)域的細線。
關于一階和二階導數(shù)總結如下:
一階導數(shù)在圖像中產生較粗的邊緣
二階導數(shù)對細節(jié)更敏感,如細線、噪聲等,它提取出來的邊緣更細更強(sharp)
二階導數(shù)在灰度斜坡和灰度臺階過度處會產生雙邊沿響應
二階導數(shù)的符號可以確定邊緣的過渡是從亮到暗還是從暗到亮
根據(jù)導數(shù)提取邊緣之前最好對圖像做平滑處理,因為導數(shù)對噪聲比較敏感,尤其是二階導數(shù)
二階導數(shù)會強化邊緣和其他區(qū)域的對比度,但是也會將灰度平滑區(qū)域的噪聲進行放大,使其更明顯
三、邊緣提取
圖像梯度用于邊緣檢測。邊緣是像素值發(fā)生躍遷的地方,是圖像的顯著特征之一,在圖像特征提取、目標檢測等方面都有重要的作用。
圖像中有灰度值的變化就會有梯度,從而產生邊緣,在邊緣處,具有變化的強弱及方向。這時一些常見的圖像識別算法的基礎,比如 hog,sift,都是基于梯度的。
邊緣分為三類,step edge、ramp edge和peak edge,下面是三類邊緣的及其導數(shù)(一階或者二階)的形狀:
根據(jù)不同的圖像邊緣特征,來決定是使用一階還是二階導數(shù)來求梯度。對圖像求一階或者高階導數(shù),會得到一些峰值,當這些峰值超過指定閾值時,則認為這些峰值對應的像素是邊緣。
前面說到在圖像上可以使用一階差分來計算相鄰像素之間的變化率,我們利用卷積和特定的算子來計算相鄰像素的變化率。prewitt算子和sobel算子可以計算相鄰三個點之間的變化率。它們用于一階算子的邊緣檢測,利用像素點上下、左右相鄰點的灰度差求取邊緣。
求梯度有三種卷積核(robert,prewitt,sobel算子),每種卷積核有兩個,對圖像分別做兩次卷積,一個代表水平梯度,一個代表垂直梯度。
3.1、Prewitt算子
下面是prewitt的兩個算子:
:計算水平梯度,檢測垂直邊緣
:計算垂直梯度,檢測水平邊緣
(梯度方向跟邊緣方向垂直)
3.2、Sobel算子
Sobel算子是在Prewitt算子的基礎上進行改進,增強了中間這個位置的權重:
:計算水平梯度,檢測垂直邊緣
:計算垂直梯度,檢測水平邊緣
Sobel更強調了和邊緣相鄰的像素點對邊緣的影響。相比較Prewitt算子,Sobel模板能夠較好的抑制噪聲(平滑)效果。
3.3、Laplacian算子
上述兩個算子都是通過求一階導數(shù)來計算梯度的,用于線的檢測,通常用于邊緣檢測。在圖像處理過程中,除了檢測線,有時候也需要檢測特殊點,這就需要用二階導數(shù)進行檢測,著名的就是拉普拉斯(Laplacian)算子。
對圖像求兩次導數(shù),公式如下:
所以拉普拉斯算子為:
下面這個拉普拉斯算子提取邊緣更明顯:
拉普拉斯算子在邊緣檢測的應用中并不局限于水平方向或垂直方向,這是Laplacian與soble的區(qū)別。
因為一階二階導數(shù)都能放大孤立點和孤立線(噪聲)的影響,所以如果存在噪聲,那么一階二階導數(shù)處理過后的圖像將會有更多更大的噪聲。所以對圖像進行一階二階導數(shù)運算之前需要先對圖像做平滑去噪處理。
四、平滑去噪
噪聲的產生是因為圖像中的某些像素的灰度值發(fā)生了突變,使得和周圍區(qū)域不和諧。除噪其實去除高頻噪聲,使得圖像中的噪聲像素的灰度值不那么突兀。
噪聲去除有基于卷積(高斯濾波,均值濾波,中值濾波等)和基于形態(tài)學(開運算、閉運算)兩種方法。
用于平滑去噪和圖像銳化(之后會介紹)的卷積核所有的元素之和一般要等于1,這是為了原始圖像的能量(亮度)守恒。如果濾波器矩陣所有元素之和大于1,那么濾波后的圖像就會比原圖像更亮,反之,如果小于1,那么得到的圖像就會變暗。如果和為0,圖像不會完全黑,但只會突出一些邊緣。
從頻率域觀點來看這些濾波器是一種低通濾波器,高頻信號將會去掉,因此可以幫助消除圖像尖銳噪聲,實現(xiàn)圖像平滑,模糊等功能。
4.1、高斯濾波
高斯濾波就是對整幅圖像進行加權平均數(shù)的過程,每一個像素點的值,都由其本身和鄰域內的其他像素值經過加權平均后得到。高斯濾波時水平和垂直方向呈現(xiàn)高斯分布,更突出了中心點在像素平滑后的權重。
高斯平滑中的濾波器是一個高斯核,二維零均值高斯函數(shù)為:
下面是高斯函數(shù)的形象表示:
常見的3x3高斯核(高斯核的寬和高必須是奇數(shù))為:
可以看到高斯核里的值符合高斯分布,中心的值最大,其他值根據(jù)距離中心元素的距離遞減,用高斯核對圖像進行卷積運算,會使圖像更模糊(平滑),而模糊的程度由高斯的標準方差 決定, 越大,平滑程度越大。高斯濾波可以有效的從圖像中去除高斯噪音。
高斯函數(shù)的值域在(0,1)之間,也就是說高斯核的九個數(shù)加起來應該等于1(也就是100%),把 1 這個數(shù)分攤到九個像素上,給了中間點更高的百分比。即高斯濾波對高斯核所覆蓋的像素點的灰度值做了一個權重平均,中間的點權重大,周圍的點權重小。
因為中心點是正在處理的點,也就是噪聲點,給它更多的權重更能保持它自己的特性,從而使得平均運算對周圍的像素影響更小。
4.2、均值濾波
使用進行均值濾波操作來模糊圖像。輸出圖像的每一個像素灰度值是卷積核在輸入圖像中對應的像素的平均值( 所有像素加權系數(shù)相等)。
均值濾波卷積核所覆蓋的九個像素點具有同樣權重, 該卷積核的作用在于取九個值的平均值代替中間像素值,所以起到的平滑的效果。
相比于高斯濾波,它不能很好地保護圖像細節(jié),在圖像去噪的同時也破壞了圖像的細節(jié)部分,丟失了圖像本身的一些屬性,從而使圖像變得模糊,不能很好地去除噪聲點。
均值濾波的卷積核為:
4.3、中值濾波
高斯濾波和均值濾波對去除高斯噪聲的效果比較好,但是在噪聲是椒鹽噪聲而不是高斯噪聲,即圖像偶爾會出現(xiàn)很大的噪聲點的時候,用高斯濾波和均值濾波對圖像進行平滑模糊的話,噪聲像素是不會被去除的,它們只是轉換為更為柔和但仍然可見的散粒。
椒鹽噪聲(salt & pepper noise)(散粒噪聲)是數(shù)字圖像的一個常見噪聲,所謂椒鹽,椒就是黑,鹽就是白,椒鹽噪聲就是在圖像上隨機出現(xiàn)黑色白色的像素。椒鹽噪聲是一種因為信號脈沖強度引起的噪聲,要對椒鹽噪聲處理就需要用中值濾波。
其他濾波器都是用計算得到的一個新值來替代中心像素的值,而中值濾波是將周圍像素和中心像素九個值進行排序以后,取中間值來替代中心像素。
中值濾波在一定的條件下可以克服常見線性濾波器帶來的圖像細節(jié)模糊,而且對濾除脈沖干擾及圖像掃描噪聲非常有效,也常用于保護邊緣信息,使得邊緣不會被模糊。但是對一些細節(jié)多,特別是線、尖頂?shù)燃毠?jié)多的圖像不宜采用中值濾波。
總結
中值濾波器與均值濾波器的比較:在均值濾波器中,由于噪聲成分被放入平均計算中,所以輸出受到了噪聲的影響,但是在中值濾波器中,由于噪聲成分很難選上,所以幾乎不會影響到輸出。因此同樣用3x3區(qū)域進行處理,中值濾波消除的噪聲能力更勝一籌。中值濾波無論是在消除噪聲還是保存邊緣方面都是一個不錯的方法。
上面介紹的都是低通濾波器,使用低通濾波器可以圖像模糊,去除圖像中的高頻成分(包括噪音和邊界)。有一些去濾波技術不會模糊掉邊界,比如雙邊濾波。
編輯:jq
-
濾波器
+關注
關注
160文章
7728瀏覽量
177677 -
圖像處理
+關注
關注
27文章
1282瀏覽量
56639 -
計算
+關注
關注
2文章
445瀏覽量
38736 -
卷積
+關注
關注
0文章
95瀏覽量
18499
原文標題:一文透徹理解:圖像卷積、邊緣提取和濾波去噪
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論