主要内容

detectHarrisFeatures

使用哈里斯-斯蒂芬斯算法检测角点

说明

points = detectHarrisFeatures(I) 返回 cornerPoints 对象 points,其中包含有关使用哈里斯-斯蒂芬斯算法在二维灰度或二进制输入中检测到的角点特征的信息。

示例

points = detectHarrisFeatures(I,Name,Value) 使用由一个或多个名称-值参量指定的附加选项。

示例

全部折叠

读取图像。

I = checkerboard;

找到角点。

corners = detectHarrisFeatures(I);

显示结果。

imshow(I); hold on;
plot(corners.selectStrongest(50));

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

输入参数

全部折叠

输入图像,指定为 M×N 二维灰度或二值图像。输入图像必须为非稀疏实矩阵。

数据类型: single | double | int16 | uint8 | uint16 | logical

名称-值参数

全部折叠

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

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

示例: 'MinQuality','0.01','ROI',[50,150,100,200] 指定检测器必须在指定的感兴趣区域内使用角点的最低可接受质量,即 1%。此感兴趣区域位于 x=50y=150 处。ROI 的宽度为 100 像素,高度为 200 像素。

角点的最低可接受质量,指定为由 'MinQuality' 和范围 [0,1] 内的标量值组成的以逗号分隔的对组。

角点的最低可接受质量表示图像中最大角点度量值的一部分。较大的值可用于删除错误的角点。

示例: 'MinQuality', 0.01

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

高斯滤波器大小,指定为由 'FilterSize' 和范围 [3, min(size(I))] 内的奇数值组成的以逗号分隔的对组。

高斯滤波器对输入图像的梯度进行平滑处理。

该函数使用 FilterSize 值来计算滤波器的大小,即 FilterSize×FilterSize。它还将高斯滤波器的标准差定义为 FilterSize/3。

示例: 'FilterSize', 5

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

用于角点检测的矩形区域,指定为由 'ROI' 和 [x y width height] 形式的向量组成的以逗号分隔的对组。前两个整数值 [x y] 表示感兴趣区域左上角的位置。最后两个整数值表示宽度和高度。

示例: 'ROI', [50,150,100,200]

输出参量

全部折叠

角点对象,以 cornerPoints 对象形式返回。该对象包含关于在二维输入图像中检测到的特征点的信息。

参考

[1] Harris, C., and M. Stephens, "A Combined Corner and Edge Detector," Proceedings of the 4th Alvey Vision Conference, August 1988, pp. 147-151.

扩展功能

全部展开

版本历史记录

在 R2013a 中推出