1. 程式人生 > >基於相位一致性的邊緣檢測

基於相位一致性的邊緣檢測

相位一致性原理:
wiki: https://en.wikipedia.org/wiki/Phase_congruency

相位一致性是指在影象的頻率域中,邊緣相似的特徵在同一階段出現的頻率較高。相位一致性的理論依據是人眼感知影象資訊時主要靠的是影象訊號的相位而非幅度。與基於灰度的邊緣特徵提取方法不同,該方法是通過計算影象的相位一致性來檢測影象中的邊緣,該方法可以不受影象區域性光線明暗變化的影響,並能包含影象中的角、線、紋理等資訊。尤其在影象邊緣對比度比較低時保留邊緣資訊。

與基於灰度邊緣提取相比,一個顯著的區別例子是由一條線組成的影象,如字母“I”。許多邊緣檢測演算法會提取兩個相鄰的邊緣:從白到黑,從黑到白的轉換。而基於相位一致性的方法可以提取出一條單一的線。

相位一致性定義:
首先,訊號F(x)的傅立葉展開為:
(1)
相位一致性的實質是影象各個頻率成分的相位相似性的一種度量方式,其定為
                                  (2)
其中是指區域性相位,後面的均值表示相位的加權平均值,是指區域性幅值,即第n個餘弦分量的幅度值。
為了簡化,還有一種複數形式的能量公式:
                                   (3)
其中,I(x) 代表實部分量,H(x) 代表虛部分量,求解相位一致性的另一種形式:
                                                            (4)
由(4)式,相位與區域性能量是成正比的,即當幅度值一定時,E(x)達到峰值時的相位與PC(x)一致。
相位一致性評價:
以下這段主要取自:http://blog.csdn.net/songzitea/article/details/17319769的講解,略有改動。


相位一致性(phase congruency)方法是一個特徵檢測運算元,它有兩個主要優點:第一,可以檢測大範圍的特徵;第二、對區域性的平滑光照變化具有不變性。它是基於相位考慮的頻域處理。圖下所示是顯示檢測出的1-D特徵,其中特徵是實線。

圖(a)所示的是有noise階梯函式,圖(b)所示的是峰值。通過Fouier變換分析,任何函式都是由不同頻率的sina波控制疊加而成的。就階梯函式而言,各個頻率(圖(a)中的虛線)都在同一時間上產生多種變化,疊加起來成為邊緣。同樣地,峰值是各個頻率在同一時間達到峰值而產生的;圖(b)中實線表示峰值,虛線表示其中一些組成的頻率。為了找到想要的特徵,可以確定一些同時發生的事件點:這就是相位一致性。通過一般化處理,一個三角形波由峰值和谷值組成:相位一致性意味組成訊號的峰值各谷值是完全一致。圖(a)所示的組成sina波是這樣得到的,對一個階梯(step)進行Fouier變換,然後根據其幅度和相位麥乳精確定那些sina波。

這兩個優點其實就是一致性檢測具有區域性對比度不變性:即使階梯邊緣強度變小,sina波不斷疊加,其變化位置不變。在影象中,這意味著即使我們變化對比度,仍然可要檢測邊緣。

當然,相位一致性方法也存在缺點:(1)計算量相對較大;(2)對噪聲比較敏感,所以一般需要先進行降噪處理。


相位一致性實現:
關於相位一致性,國外的牛人Peter有個專門的網頁專欄:http://www.peterkovesi.com/matlabfns/index.html#phasecong,裡面有相關的程式碼實現,很詳細,具體實現可以下載下來研究,我這裡貼一下測試函式和測試結果:


%% 相位一致性方法測試
clc,close all,clear all;
img=imread('D:\proMatlab\test_image\lake.jpg');
% phaseCong = phasecongmono(img);
phaseCong=phasecong3(img);
figure,
subplot(121),imshow(img),title('原圖');
subplot(122),imshow(phaseCong),title('結果');
 

參考:

《Phase Congruency Detects Corners and Edges》
--------------------- 
作者:Naruto_Qing 
來源:CSDN 
原文:https://blog.csdn.net/piaoxuezhong/article/details/78554630 
版權宣告:本文為博主原創文章,轉載請附上博文連結!