主要内容

本页采用了机器翻译。点击此处可查看英文原文。

detectKAZEFeatures

检测 KAZE 特征

说明

points = detectKAZEFeatures(I) 返回一个 KAZEPoints 对象,其中包含在二维灰度或二值图像中检测到的 KAZE 关键点的相关信息。该函数利用非线性扩散为给定的图像构建一个尺度空间。随后,它从尺度空间中检测出多尺度角特征。

示例

points = detectKAZEFeatures(I,Name=Value) 支持上述语法,且可使用一个或多个名称-值参量指定选项。例如,detectKAZEFeatures(I,Threshold=0.003) 将阈值设置为 0.003,以排除不那么显著的局部极值。

示例

全部折叠

读取一个图像。

I = imread("cameraman.tif");

检测图像中的 KAZE 点。

points = detectKAZEFeatures(I);

绘制 20 个最强点的坐标。

imshow(I)
hold on
plot(selectStrongest(points,20))
hold off

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

将图像读入工作区。

I = imread("cameraman.tif");

在图像中检测 KAZE 特征。

points = detectKAZEFeatures(I);

选择并显示检测到的最后 5 个点。

imshow(I);
hold on;
plot(points(end-4:end));
hold off;

Figure contains an axes object. The hidden axes object contains 3 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 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: detectKAZEFeatures(I,Threshold=0.003) 将阈值设置为 0.003,以排除不那么显著的局部极值。

电导率的计算方法,指定为 "region""sharpedge""edge"。该计算基于尺度空间中某层的线性索引。

方法选定的特征
"region"大区域。采用佩罗纳-马利克电导率系数 1/(1 + dL^2/k^2)
"sharpedge"高对比度的边缘。采用佩罗纳-马利克电导率系数 exp(-|dL|^2/k^2)
"edge"对边缘的两侧进行平滑处理,而不是横跨边缘进行平滑处理。使用 Weickert 扩散系数。

局部极值,指定为一个大于或等于 0 的标量。增加此值可排除不那么重要的局部极值。

多尺度检测因子,指定为一个正整数。增加此值可检测更大的特征。要禁用多尺度检测,请将 NumOctaves 设置为 1。当您将该值设置为 1 时,该函数将在输入图像的尺度上进行检测。建议的值范围为 1 到 4。

尺度层级,指定为 [3,10] 范围内的整数。增大该值可实现更平滑的尺度变化。增大该值还会在倍频程之间提供额外的中间尺度。

用于角点检测的矩形区域大小,以格式为 [y x width height] 的 4 元素向量指定。[y x] 的值是从矩形的左上角开始测量的。

输出参量

全部折叠

KAZE 坐标,以 KAZEPoints 对象的形式返回。该对象包含有关在二维灰度或二值输入图像中检测到的角点特征的信息。

参考

[1] Alcantarilla, P.F., A. Bartoli, and A.J. Davison. "KAZE Features." ECCV 2012, Part VI, LNCS 7577. 2012, p. 214

扩展功能

全部展开

版本历史记录

在 R2017b 中推出