# detectORBFeatures


检测 ORB 特征点

函数库: TyImageProcessing

# 语法

points = detectORBFeatures(I)
points = detectORBFeatures(I;Name=Value)

# 说明

points = detectORBFeatures(I) 返回一个 ORBPoints 对象,其中包含有关 ORB 特征点的信息。这些 ORB 特征点是通过使用定向 FAST 和旋转 BRIEF(ORB)特征检测方法从输入图像中检测到的。示例


points = detectORBFeatures(I;Name=Value) 使用一个或多个名称-值参数指定选项。示例

# 示例

在灰度图像中检测 ORB 特征点

将图像读入工作区。

using TyImageProcessing
using TyPlot

I = imread("businessCard.png");

将图像转换为灰度图像。

I = im2gray(I);

显示灰度图像。

figure()
imshow(I)

检测并存储 ORB 特征点。

points = detectORBFeatures(I);

显示灰度图像并绘制检测到的 ORB 特征点。抑制检测到的特征点周围的圆圈显示。ORB 特征点是在高强度方差区域检测到的。

figure()
imshow(I)
hold("on")
plot(points; ShowScale=false)
hold("off")
在二值形状图像中检测 ORB 特征点

将二进制图像读入工作区。

using TyImageProcessing
using TyPlot

I = imread("star.png");

显示图像。

figure()
imshow(I)

检测并存储 ORB 特征点。将图像分解的缩放因子指定为 1.01,分解级别的数量指定为 3。

points = detectORBFeatures(I; ScaleFactor=1.01, NumLevels=3);

显示图像并绘制检测到的 ORB 特征点。二进制形状图像中的拐点被检测为 ORB 特征点。

figure()
imshow(I)
hold("on")
plot(points[200:247])
hold("off")

# 输入参数

I — 输入图像
M×N 灰度或二值图像

输入图像,指定为 M×N 的灰度或二值图像。输入图像必须是实数且非稀疏的。

数据类型: Float32 | Float64 | Int16 | UInt8 | UInt16 | Bool

# 名称-值参数

指定可选的参数对作为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是相应的值。名称-值参数必须出现在其他参数之后,但是对这些对的顺序不重要。

示例: detectORBFeatures(I;NumLevels=4)

ScaleFactor — 图像分解的缩放因子
1.2 (默认) | 大于 1 的数值标量

图像分解的缩放因子,指定为以逗号分隔的对,包含 'ScaleFactor' 和一个大于 1 的标量。每个分解级别的缩放值为 ScaleFactor^(level-1),其中 level 是范围 [0, NumLevels-1] 内的任何值。给定大小为 M-by-N 的输入图像,每个分解级别的图像大小为:

数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64

NumLevels — 分解级别数量
8 (默认) | 大于等于 1 的数值标量

分解级别数量,指定为以逗号分隔的对,包含 'NumLevels' 和一个大于或等于 1 的标量。增加该值可以在更多分解级别中从图像中提取特征点。

提取特征点的分解级别数量受该级别图像大小的限制。某一分解级别的图像大小必须至少为 63x63 才能检测特征点。最大分解级别的计算为

如果默认值或指定的 'NumLevels' 大于 levelmax,函数将修改 NumLevels 为 levelmax 并返回警告。

数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64

ROI — 兴趣区域
[1 1 M N](默认) | 四元素向量

兴趣区域用于特征点检测,指定为以逗号分隔的对,包含 'ROI' 和格式为 [x y width height] 的向量。前两个元素表示兴趣区域左上角的坐标位置。最后两个元素表示兴趣区域的宽度和高度。兴趣区域的宽度和高度必须均为大于或等于 63 的值。

# 输出参数

points — ORB 特征点
ORBPoints 对象

ORB 特征点,作为 ORBPoints 对象返回。该对象包含在输入图像中检测到的特征点的信息。

数据类型: ORBPoints