天天看點

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

目錄

  • 圖像卷積
  • 圖像梯度
  • 邊緣提取
    • 1. Prewitt算子
    • 2. Sobel算子
    • 3. Laplacian算子
  • 平滑去噪
    • 1. 高斯濾波
    • 2. 均值濾波
    • 3. 中值濾波

一、圖像卷積

現在有一張圖檔 f(x,y) 和一個kernel核 w(a,b)。

卷積

(Convolution):卷積運算就是對于圖像 f(x,y) 中的每個像素,将其作為中心像素,計算它及其鄰域像素和kernel核 w(a,b)對應位置元素的乘積,然後把結果相加到一起,得到的值就作為該中心像素的新值,這樣就完成了一次卷積運算。然後将kernel向下或向左平移一位繼續計算每個像素的新值,直到周遊完整個圖像。

如下圖所示:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

卷積運算的公式如下:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

還有一個概念是

互相關

(Cross-correlation),流程和卷積類似,差別在于卷積在運算前需要把kernel圍繞中心旋轉180度(即做一次上下翻轉(filp)和一次左右翻轉),而互相關則不需要。

互相關的公式如下:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

兩者的具體差別可以檢視 卷積運算和相關運算的差別與實體含義。

互相關主要用于計算兩個圖像的相關性(主要用于圖像配準)。因為我們平時接觸的卷積核大都是關于x軸和y軸對稱的,是以卷積和互相關在這種情況下沒什麼差別。

中心像素在圖像的邊緣時,沒有足夠的像素與kernel進行運算,有兩個方法:

  1. 最外面的一圈像素不進行計算,如果圖像非常大,丢掉圖像邊緣的一圈對結果影響不大。
  2. 更好的辦法是人為地在圖像四周插入一圈像素(比如最近鄰插值)。

圖像的處理結果可能超出值域範圍(0-255),則小于0的值視作0,大于255的視作255就行了。

二、圖像梯度

梯度的方向是函數 f(x,y) 變化最快的方向,當圖像中存在邊緣時,有一些相鄰像素的灰階值變化比較大,即一定有較大的梯度值。是以可以求圖像的梯度來确定圖像的邊緣。

分别對圖像按照x方向和y方向進行求偏導,得到x梯度圖和y梯度圖。梯度是矢量,存在幅值和方向,下面這個公式表示了圖像的梯度:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

梯度的幅值(magnitude)為:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

梯度的方向(direction)為:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

梯度方向會取絕對值,是以得到的角度範圍是 [0,180°]。

導數的含義就是計算像素灰階值的變化率,對于離散圖像而言,在圖像上使用一階差分來計算相鄰像素之間的內插補點,進而得到圖像的梯度。

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

也可以使用二階差分求梯度:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

下面是一個邊緣的例子:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

上面是對斜坡區域進行求導,斜坡區域是圖像中最常見的區域,因為圖檔中的大部分邊緣都不是突變的而是漸變的,對于斜坡區域,一階導數将斜坡變成了平坦區域即變成了粗線,二階導數将斜坡變成了兩條中間存在平台區域的細線。

關于一階和二階導數總結如下:

  1. 一階導數在圖像中産生較粗的邊緣
  2. 二階導數對細節更敏感,如細線、噪聲等,它提取出來的邊緣更細更強(sharp)
  3. 二階導數在灰階斜坡和灰階台階過度處會産生雙邊沿響應
  4. 二階導數的符号可以确定邊緣的過渡是從亮到暗還是從暗到亮
  5. 根據導數提取邊緣之前最好對圖像做平滑處理,因為導數對噪聲比較敏感,尤其是二階導數
  6. 二階導數會強化邊緣和其他區域的對比度,但是也會将灰階平滑區域的噪聲進行放大,使其更明顯

三、邊緣提取

圖像梯度用于邊緣檢測。邊緣是像素值發生躍遷的地方,是圖像的顯著特征之一,在圖像特征提取、目标檢測等方面都有重要的作用。

圖像中有灰階值的變化就會有梯度,進而産生邊緣,在邊緣處,具有變化的強弱及方向。這時一些常見的圖像識别算法的基礎,比如 hog,sift,都是基于梯度的。

邊緣分為三類,

step edge

ramp edge

peak edge

,下面是三類邊緣的及其導數(一階或者二階)的形狀:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

根據不同的圖像邊緣特征,來決定是使用一階還是二階導數來求梯度。對圖像求一階或者高階導數,會得到一些峰值,當這些峰值超過指定門檻值時,則認為這些峰值對應的像素是邊緣。

前面說到在圖像上可以使用一階差分來計算相鄰像素之間的變化率,我們利用卷積和特定的算子來計算相鄰像素的變化率。

prewitt算子

sobel算子

可以計算相鄰三個點之間的變化率。它們用于一階算子的邊緣檢測,利用像素點上下、左右相鄰點的灰階差求取邊緣。

求梯度有三種卷積核(robert,prewitt,sobel算子),每種卷積核有兩個,對圖像分别做兩次卷積,一個代表水準梯度,一個代表垂直梯度。

3.1、Prewitt算子

下面是prewitt的兩個算子:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

:計算水準梯度,檢測垂直邊緣

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

:計算垂直梯度,檢測水準邊緣

(梯度方向跟邊緣方向垂直)

3.2、Sobel算子

Sobel算子是在Prewitt算子的基礎上進行改進,增強了中間這個位置的權重:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

:計算水準梯度,檢測垂直邊緣

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

:計算垂直梯度,檢測水準邊緣

Sobel更強調了和邊緣相鄰的像素點對邊緣的影響。相比較Prewitt算子,Sobel模闆能夠較好的抑制噪聲(平滑)效果。

3.3、Laplacian算子

上述兩個算子都是通過求一階導數來計算梯度的,用于線的檢測,通常用于邊緣檢測。在圖像處理過程中,除了檢測線,有時候也需要檢測特殊點,這就需要用二階導數進行檢測,著名的就是拉普拉斯(Laplacian)算子。

對圖像求兩次導數,公式如下:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

是以拉普拉斯算子為:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

下面這個拉普拉斯算子提取邊緣更明顯:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

拉普拉斯算子在邊緣檢測的應用中并不局限于水準方向或垂直方向,這是Laplacian與soble的差別。

因為一階二階導數都能放大孤立點和孤立線(噪聲)的影響,是以如果存在噪聲,那麼一階二階導數處理過後的圖像将會有更多更大的噪聲。是以對圖像進行一階二階導數運算之前需要先對圖像做平滑去噪處理。

四、平滑去噪

噪聲的産生是因為圖像中的某些像素的灰階值發生了突變,使得和周圍區域不和諧。除噪其實去除高頻噪聲,使得圖像中的噪聲像素的灰階值不那麼突兀。

噪聲去除有基于卷積(高斯濾波,均值濾波,中值濾波等)和基于形态學(開運算、閉運算)兩種方法。

用于平滑去噪和圖像銳化(之後會介紹)的卷積核所有的元素之和一般要等于1,這是為了原始圖像的能量(亮度)守恒。如果濾波器矩陣所有元素之和大于1,那麼濾波後的圖像就會比原圖像更亮,反之,如果小于1,那麼得到的圖像就會變暗。如果和為0,圖像不會完全黑,但隻會突出一些邊緣。

從頻率域觀點來看這些濾波器是一種

低通濾波器

,高頻信号将會去掉,是以可以幫助消除圖像尖銳噪聲,實作圖像平滑,模糊等功能。

4.1、高斯濾波

高斯濾波就是對整幅圖像進行權重平均數的過程,每一個像素點的值,都由其本身和鄰域内的其他像素值經過權重平均後得到。高斯濾波時水準和垂直方向呈現高斯分布,更突出了中心點在像素平滑後的權重。

高斯平滑中的濾波器是一個高斯核,二維零均值高斯函數為:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

下面是高斯函數的形象表示:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

常見的3x3高斯核(高斯核的寬和高必須是奇數)為:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

可以看到高斯核裡的值符合高斯分布,中心的值最大,其他值根據距離中心元素的距離遞減,用高斯核對圖像進行卷積運算,會使圖像更模糊(平滑),而模糊的程度由高斯的标準方差

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

決定,

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

越大,平滑程度越大。高斯濾波可以有效的從圖像中去除高斯噪音。

高斯函數的值域在(0,1)之間,也就是說高斯核的九個數加起來應該等于1(也就是100%),把 1 這個數分攤到九個像素上,給了中間點更高的百分比。即高斯濾波對高斯核所覆寫的像素點的灰階值做了一個權重平均,中間的點權重大,周圍的點權重小。

因為中心點是正在處理的點,也就是噪聲點,給它更多的權重更能保持它自己的特性,進而使得平均運算對周圍的像素影響更小。

4.2、均值濾波

使用進行均值濾波操作來模糊圖像。輸出圖像的每一個像素灰階值是卷積核在輸入圖像中對應的像素的平均值( 所有像素權重系數相等)。

均值濾波卷積核所覆寫的九個像素點具有同樣權重, 該卷積核的作用在于取九個值的平均值代替中間像素值,是以起到的平滑的效果。

相比于高斯濾波,它不能很好地保護圖像細節,在圖像去噪的同時也破壞了圖像的細節部分,丢失了圖像本身的一些屬性,進而使圖像變得模糊,不能很好地去除噪聲點。

均值濾波的卷積核為:

不同圖像銳化算子提取的圖像資訊有哪些不同_圖像卷積、邊緣提取和濾波去噪

4.3、中值濾波

高斯濾波和均值濾波對去除高斯噪聲的效果比較好,但是在噪聲是

椒鹽噪聲

而不是高斯噪聲,即圖像偶爾會出現很大的噪聲點的時候,用高斯濾波和均值濾波對圖像進行平滑模糊的話,噪聲像素是不會被去除的,它們隻是轉換為更為柔和但仍然可見的散粒。

椒鹽噪聲(salt & pepper noise)

(散粒噪聲)是數字圖像的一個常見噪聲,所謂椒鹽,椒就是黑,鹽就是白,椒鹽噪聲就是在圖像上随機出現黑色白色的像素。椒鹽噪聲是一種因為信号脈沖強度引起的噪聲,要對椒鹽噪聲處理就需要用中值濾波。

其他濾波器都是用計算得到的一個新值來替代中心像素的值,而中值濾波是将周圍像素和中心像素九個值進行排序以後,取中間值來替代中心像素。

中值濾波在一定的條件下可以克服常見線性濾波器帶來的圖像細節模糊,而且對濾除脈沖幹擾及圖像掃描噪聲非常有效,也常用于保護邊緣資訊,使得邊緣不會被模糊。但是對一些細節多,特别是線、尖頂等細節多的圖像不宜采用中值濾波。

總結

中值濾波器與均值濾波器的比較:在均值濾波器中,由于噪聲成分被放入平均計算中,是以輸出受到了噪聲的影響,但是在中值濾波器中,由于噪聲成分很難選上,是以幾乎不會影響到輸出。是以同樣用3x3區域進行處理,中值濾波消除的噪聲能力更勝一籌。中值濾波無論是在消除噪聲還是儲存邊緣方面都是一個不錯的方法。

上面介紹的都是低通濾波器,使用低通濾波器可以圖像模糊,去除圖像中的高頻成分(包括噪音和邊界)。有一些去濾波技術不會模糊掉邊界,比如

雙邊濾波

如果覺得有用,點個贊吧(ง •̀_•́)ง。

繼續閱讀