您的位置:首页 > 编程语言 > MATLAB

图像边缘检测、角点特征检测以及SURF特征提取

2017-04-01 13:52 169 查看
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算法,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且与滤波模板的尺寸无关从而极大地提高了尺度不变特征的检测速度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab