1. 程式人生 > >影象邊緣檢測、角點特徵檢測以及SURF特徵提取

影象邊緣檢測、角點特徵檢測以及SURF特徵提取

1.影象的邊緣檢測
影象的邊緣是指其周圍畫素灰度急劇變化的那些畫素的集合。邊緣檢測的基本思想是先檢測影象中的邊緣點,在按照某種策略將邊緣點連線成輪廓,從而構成分割區域。

利用edge對輸入的灰度影象進行邊緣檢測
I=imread(‘circuit.tif’);
BW1=edge(I,’prewitt’); % 利用prewitt運算元進行邊緣檢測
BW2=edge(I,’canny’); %利用canny運算元進行邊緣檢測
subplot(1,2,1),imshow(BW1);
subplot(1,2,2),imshow(BW2)這裡寫圖片描述

2.角點特徵檢測
角點是兩個邊緣的焦點,是鄰域內具有兩個主方向的特徵點。角點所在的鄰域通常也是影象中穩定的、資訊豐富的區域。
基於影象邊緣的檢測方法:需要對影象邊緣進行編碼,在很大程度上依 賴於影象的分割和邊緣提取,具有較大的計算量。
基於影象灰度的檢測方法:通過計算點的曲率及梯度來檢測角點,是目前研究的重點。

有關角點檢測的函式cornermetric

I=imread(‘pout.tif’);
I=I(1:150,1:120);
subplot(1,2,1);
imshow(I);
title(‘輸入影象’);
CM=cornermetric(I);
%對影象進行Harris角點提取
corner_peaks=imregionalmax(CM);%查詢矩陣中最大值並顯示,CM-角點矩陣
corner_idx=find(corner_peaks==true);
[rgb]=deal(I);
r(corner_idx)=255;
g(corner_idx)=255;
b(corner_idx)=0;
RGB=cat(3,r,g,b);
subplot(1,3,3);
imshow(RGB);這裡寫圖片描述

3.SURF特徵提取
為了提高搜尋特徵點的演算法,提出的SURF演算法,使得模板對影象的濾波只需要進行幾個簡單的加減法運算,並且與濾波模板的尺寸無關從而極大地提高了尺度不變特徵的檢測速度。