1、图像的边缘检测的原理及基于Canny算子检测图像
答:边缘检测基本思想实现检测图像中的边缘点,再按照某种策略将边缘点连接成轮廓,从而构成分割区域。
Canny边缘检测内测算子是边缘检测算子中最常用的一种,也是公认的性能优良的边缘检测算子,经常被其他算子引用作为标准算子进行优劣的对比分析。(①高的检测率;②精确的定位;③明确的响应)
利用Canny算子进行边缘提取主要分4步:①去噪声;②计算梯度值与方向角;③非最大值抑制;④滞后阈值化。
%读入图像
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(BW1)
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(BW1)
2、角点特征检测
答:角点:角点是两个边缘的交点;角点是领域内具有两个主方向的特征点。
%读入图像;
I=imread('cameraman.tif');
%对输入的图像检测SURF特征;
points = detectSURFFeatures(I);
%显示最强的十个SURF特征点;
imshow(I);hold on;
plot(points.selectStrongest(10));
I=imread('cameraman.tif');
%对输入的图像检测SURF特征;
points = detectSURFFeatures(I);
%显示最强的十个SURF特征点;
imshow(I);hold on;
plot(points.selectStrongest(10));
3、SURF特征提取简介
答:为了提高搜索特征点的速度,Bay等人提出的SURF(Speeded Up Robust Features,SURF)算法,SURF将DoH中的高斯二阶微分模板进行了近似简化,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且,这种运算与滤波模板的尺寸无关,从而极大地提高了尺度不变特征的检测速度。
4、extractFeatures函数
答:当获得一幅图像的SURF特征点的信息后,可以调用extractFeatures()函数获取SURF特征向量。具体使用方法如下:
[FEATURES,VALID_POINTS]=extractFeatures(I,POINTS)
功能:提取特征点的特征向量。
输入:I-灰度图像;POINTS-特征点信息。
输出:FEATURES-特征描述向量;VALID_POINTS-有效特征点坐标。
%读入图像;
I=imread('cameraman.tif');
%对输入的图像检测SURF特征;
points = detectSURFFeatures(I);
%显示最强的十个SURF特征点;
imshow(I);hold on;
plot(points.selectStrongest(10));
I=imread('cameraman.tif');
%对输入的图像检测SURF特征;
points = detectSURFFeatures(I);
%显示最强的十个SURF特征点;
imshow(I);hold on;
plot(points.selectStrongest(10));