DoG(Difference of Gaussian)算子和LoG(Laplacian of Gaussian)算子是常用的極值點檢測(Blob Detection)兩種方法,高斯卷積是為了進行尺度變換,那么LapLacian呢。 因此這里首先引入LapLacian算子。
圖像邊緣檢測
因此進行邊緣檢測有兩種方法。一階導數的極值
梯度算子定義為:
為了簡化計算,一般梯度算子可以寫為:
于是得到的一階算子有檢測對角線邊緣的羅伯特算子:
對應卷積模板為:
加了高斯平滑的邊緣提取算子:sobel算子
對應的卷積模板為
二階導數的過零點
二階導數算子實際就是Laplace算子,定義為兩個方向一階導數的內積,符號表示
使用二階差分代替二階函數,則
那么卷積模板為:
如果考慮四個方向:
那么卷積模板為:
由于Laplace算子對噪聲很敏感,所以一般利用高通濾波器進行平滑處理,所以引入了高斯拉普拉斯算子(LoG,Laplacian of Gaussian)
高斯拉普拉斯算子(LoG, Laplacian of Gaussian)
對于圖像
,首先通過尺度為
的高斯平滑
在使用Laplace算子檢測邊緣
該式證明如下:
所以高斯拉普拉斯算子等價于先對高斯函數求二階導,再與原圖進行卷積
將高斯拉普拉斯算子展開:
高斯函數差分(DoG, Difference of Gaussian of Gaussian)
DoG即對不同尺度下的高斯函數的差分,DoG算子表達如下:
由于歸一化的LoG算子:
而
所以:
即DoG算子和LoG算子具有類似的波形,僅僅是幅度不同,不影響極值點的檢測,而DoG算子的計算復雜度顯然低于LoG,因此一般使用DoG代替LoG算子
利用DoG或LoG進行邊緣和極值點檢測
邊緣檢測:圖像邊緣在LoG算子下的響應情況如下圖所示,二階微分算子在邊緣處為一過零點(由于圖像是離散的,也可能不是零點附近),而且過零點兩邊的最大值(正)和最小值(負)的差值較大。
極值點檢測:隨著矩形寬度的減小,響應變化如下。
通過不同尺度的高斯濾波器,可以檢測不同大小的Blob。這里解釋一下斑點通常和關鍵點(keypoint),興趣點(intrestpoint)以及特征點(featurepoint)表示同一個概念,通常指與周圍有著顏色和灰度區別的區域。