主要内容

corner

(不推荐)查找图像中的角点

不建议使用 corner。请改用 Computer Vision Toolbox™ 中的 detectHarrisFeatures (Computer Vision Toolbox)detectMinEigenFeatures (Computer Vision Toolbox)

说明

C = corner(I) 检测图像 I 中的角点,并以矩阵 C 形式返回其坐标。

C = corner(I,method) 使用指定的 method 检测图像 I 中的角点。

C = corner(I,N) 检测图像 I 中的角点,并最多返回 N 个角点。

C = corner(I,method,N) 使用指定的方法和最大角点数检测角点。

C = corner(___,Name,Value) 指定控制角点检测算法各个方面的参数和对应值。

示例

示例

全部折叠

此示例说明如何使用 corner 函数定位角点,并通过细化所需角点的最大数量来调整结果。

创建一个棋盘图像。

I = checkerboard(40,2,2);

查找图像中的角点。

C = corner(I);

当最大角点数设置为默认值 200 时,所显示的角点。

subplot(1,2,1);
imshow(I);
hold on
plot(C(:,1), C(:,2), '*', 'Color', 'c')
title('Maximum Corners = 200')
hold off

Figure contains an axes object. The hidden axes object with title Maximum Corners = 200 contains 2 objects of type image, line. One or more of the lines displays its values using only markers

当最大角点数设置为 3 时,所显示的角点。

corners_max_specified = corner(I,3);
subplot(1,2,2);
imshow(I);
hold on
plot(corners_max_specified(:,1), corners_max_specified(:,2), ...
   '*', 'Color', 'm')
title('Maximum Corners = 3')
hold off

Figure contains 2 axes objects. Hidden axes object 1 with title Maximum Corners = 200 contains 2 objects of type image, line. One or more of the lines displays its values using only markers Hidden axes object 2 with title Maximum Corners = 3 contains 2 objects of type image, line. One or more of the lines displays its values using only markers

输入参数

全部折叠

灰度或二值图像,指定为 m×n 数值矩阵。

角点检测方法,指定为 'Harris'(对于哈里斯角点检测器),或 'MinimumEigenvalue'(对于 Shi & Tomasi 最小特征值方法)。

corner 函数可以返回的最大角点数,指定为正整数。

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: corner(I,'QualityLevel',0.2) 将图像 I 中的角点的最低质量级别指定为 0.2

可分离平滑滤波器的滤波器系数,以逗号分隔的对组形式指定,其中包含 'FilterCoefficients' 和一个数值向量。向量 V 的长度必须为奇数且最小长度为 3。外积 V*V' 提供完整的滤波器核。默认滤波器系数由 fspecial('gaussian',[5 1],1.5) 给出。

角点的最低可接受质量,以逗号分隔的对组形式指定,其中包含 'QualityLevel' 和一个 (0,1) 范围内的数值标量。对于质量级别 Q,工具箱拒绝角点度量值小于 Q * max(corner metric) 的候选角点。使用较大的 Q 值可删除错误的角点。

哈里斯检测算法中使用的敏感度因子,以逗号分隔的对组形式指定,其中包含 'SensitivityFactor' 和一个 (0, 0.25) 范围内的数值标量。敏感度因子越小,算法越可能检测到锐边角。请仅将此参数与 'Harris' method 结合使用。

输出参量

全部折叠

在图像 I 中检测到的角点的 xy 坐标,以 p×2 矩阵形式返回。

数据类型: double

提示

cornercornermetric 函数都可用于检测图像中的角点。对于大多数应用,使用简化的 corner 函数只需一步即可找到角点。如果您要更好地控制角点选择,请使用 cornermetric 函数计算角点度量矩阵,然后编写自己的算法来查找峰值。

算法

corner 函数对候选角点执行非最大值隐藏,角点至少相隔两个像素。

版本历史记录

在 R2010b 中推出

另请参阅

| (Computer Vision Toolbox) | (Computer Vision Toolbox)