close

http://blog.csdn.net/memory513773348/article/details/8709440

 

Gabor函數

 

Gabor變換屬於加窗傅立葉變換,Gabor函數可以在頻域不同尺度、不同方向上提取相關的特征。另外Gabor函數與人眼的生物作用相仿,所以經常用作紋理識別上,並取得了較好的效果。二維Gabor函數可以表示為:

其中:

v的取值決定了Gabor濾波的波長,u的取值表示Gabor核函數的方向,K表示總的方向數。參數決定了高斯窗口的大小,這裡取。程序中取4個頻率(v=0, 1, ..., 3),8個方向(即K=8,u=0, 1, ... ,7),共32個Gabor核函數。不同頻率不同方向的Gabor函數可通過下圖表示:

圖片來源:GaborFilter.html

圖片來源:http://www.bmva.ac.uk/bmvc/1997/papers/033/node2.html

參考:http://zhenyulu.cnblogs.com/articles/325968.html

網上有代碼下載,蠻全的:http://download.csdn.net/detail/mathchunks/2740767

LOG(Laplacian-Gauss

 

在圖像中,邊緣可以看做是位於一階導數較大的像素處,因此,我們可以求圖像的一階導數來確定圖像的邊緣,像sobel算子等一系列算子都是基於這個思想的。但是這存在幾個問題:1. 噪聲的影響,在噪聲點處一階導數也會取極大值 2. 求解極大值的復雜性。所以,有了使用二階導數的方法。這裡主要考慮LoG算子,即高斯-拉普拉斯算子。

為什麼要使用二階導數呢?這裡要考慮上面說的第二個問題,一階導數的極大值到了二階導數對應的值就是0了,很顯然求解一個函數的零點值要比求極大值容易。這個性質也被稱為二階導數過零點(zero-crossing)。所以,我們就可以利用二階導數來代替一階導數了。而對於上面的第一個問題,也就是為什麼要引入高斯算子的原因。

我們已經知道拉普拉斯算子其實就是一個二階導數算子,為什麼還要引入高斯呢?細想一下,高斯算子在圖像處理中的一般的作用其實大都是進行模糊,換句話說它可以很好的抑制噪聲,這樣引入高斯算子我們就克服了噪聲的影響(這也是LoG算子對拉普拉斯算子的改進的地方)。所以,高斯-拉普拉斯算子其實就是:先對圖像進行高斯模糊,然後再求二階導數,二階導數等於0處對應的像素就是圖像的邊緣。

具體的推導過程可以看一下下面的鏈接:http://fourier.eng.hmc.edu/e161/lectures/gradient/node10.html

由於高斯函數的參數sigma對高斯算子的影響,所以,如果sigma選取的很小的話,前期的模糊效果很弱,也就可以近似等於拉普拉斯算子了。所以,拉普拉斯算子也可以看做高斯-拉普拉斯算子的一種極限情況。

 

LOG濾波器有以下特點:

(1)通過圖象平滑,消除了一切尺度小於σ的圖像強度變化;

(2)若用其它微分法,需要計算不同方向的微分,而它無方向性,因此可以節省計算量;

(3)它定位精度高,邊緣連續性好,可以提取對比度較弱的邊緣點。

LOG濾波器也有它的缺點:當邊緣的寬度小於算子寬度時,由於過零點的斜坡融合將會丟失細節。LOG濾波器有無限長的拖尾,若取得很大尺寸,將使得計算不堪重負。但隨著:r=的增加,LOG濾波器幅值迅速下降,當r大於一定程度時,可以忽略模板的作用,這就為節省計算量創造了條件。實際計算時,常常取n* n大小的LOG濾波器,近似n=3σ。另外,LOG濾波器可以近似為兩個指數函數之差,即DOG ( Difference Of twoGaussians functions):當σ1/σ2=1.6時,DOG代替LOG減少了計算量。

 

參考:http://www.cnblogs.com/ztfei/archive/2012/09/01/2667050.html ;http://wenku.baidu.com/view/e47a421d6bd97f192279e97c.html

 

DOG(高斯差分)

進行高斯差分的結果是DOG(Difference of Gaussian),這個DOG是LOG(laplacian of Gaussian)的近似。LOG圖像是目前來說尺度變換最好的,特精確。但是由於計算LOG圖像很費勁,作者Lowe呢就對LOG圖像進行了近似,他發現如果是用DOG的話呢,只和原來的LOG差了一個常數,這樣的話最大值最小值的位置是不變的。而我們的目的呢,就是要找到這個最大最小值然後找到這個興趣點的位置。關鍵是DOG計算起來很方便,只要兩張圖片相減就好了。
參考:<a target=_blank href="http://zhidao.baidu.com/question/390079348.html" target="_blank" style="color: rgb(202, 0, 0); text-decoration: none;">http://zhidao.baidu.com/question/390079348.html</a>

多尺度問題

尺度可以說就是感興趣區域的大小,有2種描述的方式:模板的大小,算子的參數。
舉例來說,SIFT特征是一種尺度不變特征,
1.采用DOG(高斯差分)來近似LOG算子,其實直接計算LOG也是可以的;LOG算子是Laplace算子的擴展;laplace算子只能檢測圖像中的點;但是LOG不但可以檢測局部極值點,還可以檢測局部區域(斑點),這是因為高斯函數的核是可以變化的。用大的核檢測出的局部極值點就是大的斑點。所以兩幅圖像若有相同的斑點,雖然大小不一,但采用不同和核是可以吧它們檢測出來的。
2.通過上述的LOG算子,找到局部極值點,這就是Keypoints;
3.用大的核檢測到的極值點,就在一個大的區域內計算局部梯度直方圖,用小的核檢測到的極值點,就在一個小的區域內計算局部梯度直方圖,
4.經過上述處理就可以進行點到點匹配啦;其實主要的思想還是LOG算子的理解,它不僅僅是用來計算圖像邊緣。
 
LBP卻不具備尺度不變的特性,因為LBP是基於基於像素的特征描述,尺度變換後像素特征會改變,尤其是在分塊統計時。網上的多尺度LBP都是使用多種分塊尺度來將局部信息和全局信息進行融合,並未實現尺度不變性。現在多數使用的方法多是將尺度不變的方法融合進LBP來實現尺度不變,如SIFT、Gabor。
 
通俗講,你拍攝一個目標,離得近那就獲得大尺度圖像,離得遠那就獲得小尺度圖像。尺度不變性,一般是針對特征點(or興趣點)檢測算法而言,即算法對圖像的尺度變化要具備一定的魯棒性,像DOG、LOG等特征點檢測算法,能同時獲得特征的位置和尺度(也就是特征點所在區域的大小)信息,說明DOG、LOG特征點檢測算法具備一定的尺度不變性。
arrow
arrow
    全站熱搜

    Rocky 發表在 痞客邦 留言(0) 人氣()