主要内容

ORBPoints

对象,用于存储ORB关键点

描述

一个ORBPoints对象存储图像中的定向FAST和旋转BRIEF (ORB)关键点。您可以指定关键点并将它们存储为ORBPoints对象。你也可以使用detectORBFeatures函数来检测图像中的ORB关键点。的detectORBFeatures函数将检测到的ORB关键点存储为ORBPoints对象。使用对象的功能绘制、选择和操作检测到的ORB关键点。

创建

描述

= ORBPoints创建一个ORBPoints具有默认属性值的对象。

例子

= ORBPoints (位置创建一个ORBPoints属性指定的位置坐标集合位置.位置输入设置位置财产。

例子

= ORBPoints (位置名称,值使用一个或多个名称-值对参数设置对象的属性。将每个属性名用引号括起来。例如,ORBPoints(位置,“数”,15)创建一个ORBPoints对象与属性设置为15。

属性

全部展开

此属性是只读的。

关键点的位置,指定为2矩阵。每一行的形式为[xy],表示关键点的位置。是关键点的个数。不能将此属性设置为名称-值对。使用位置输入参数。

此属性是只读的。

关键点的强度,指定为以下值之一:

  • 标量-检测的关键点具有相同的强度。在本例中,对象赋值相同度规值到所有关键点。

  • 一个-element vector -检测到的关键点具有不同的强度值。在本例中,对象赋值不同度规每个关键点的值。是关键点的个数。

例子:ORBPoints(位置,“规”,0.5)

数据类型:

此属性是只读的。

由对象持有的关键点数目,指定为非负整数。

此属性是只读的。

比例因子,指定为以下值之一:

  • 标量——在同一分解级别检测所有关键点。在本例中,对象赋值相同规模值到所有关键点。

  • 一个-element vector -在分解的不同层次检测关键点。在本例中,对象赋值不同规模每个关键点的值。是关键点的个数。

比例因子指定检测关键点的分解级别。

例子:ORBPoints(位置、规模的1.2)

数据类型:

此属性是只读的。

关键点的角度(以弧度为单位),指定为以下值之一:

  • 标量——被检测的关键点具有相同的方向。在本例中,对象赋值相同取向值到所有关键点。

  • 一个-element vector -检测到的关键点方向不同。在本例中,对象赋值不同取向每个关键点的值。是关键点的个数。

关键点形成的角度是参考图像的横轴来定义的。关键点的坐标被设置为轴的原点。

例子:ORBPoints(位置、方向的0.7854)

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

对象的功能

isempty 判断points对象是否为空
长度 存储点数量
情节 情节点
selectStrongest 选择指标最强的点
大小 返回points对象的大小
selectUniform 选择特征点的均匀分布子集

例子

全部折叠

将图像读入工作区。

I = imread(“licensePlates.jpg”);

将图像转换为灰度图像。

I = im2gray(I);

指定图像中关键点的位置。

位置= [400 398;...485 343;...274 323;...274 367;...241 313;...302 213);

创建一个ORBPoints对象并显示其属性。

点= ORBPoints(位置)
点= 6x1 ORBPoints数组属性:位置:[6x2 single]度量:[6x1 single]计数:6比例:[6x1 single]方向:[6x1 single]

检查规模而且取向的属性ORBPoints对象。

点。规模
ans =6x1单列向量1 1 1 1 1 1 1 1
点。取向
ans =6x1单列向量0 0 0 0 0 0

为每个关键点指定缩放值。

规模= [2.1 2.5 2.5 4 2.3 3.9];

指定关键点的角度值为0.7854弧度。

角度= 0.7854;

创建一个ORBPoints对象使用关键点和更新的比例和角度值创建。输出是ORBPoints对象,其中包含已修改的关键点规模而且取向属性。

点= ORBPoints(位置,“规模”、规模、“定位”、角);

检查更新规模值。

点。规模
ans =6x1单列向量2.1000 2.5000 2.5000 4.0000 2.3000 3.9000

检查更新取向值。自取向Value是一个标量,对象将相同的值赋给所有关键点。

点。取向
ans =6x1单列向量0.7854 0.7854 0.7854 0.7854 0.7854

显示图像并在图像上绘制ORB关键点。

figure imshow(I) hold住情节(分)

图中包含一个轴对象。axis对象包含image、line类型的3个对象。

将图像读入工作区。

I = imread(“cameraman.tif”);

使用detectORBFeatures函数来检测图像中的ORB关键点。函数返回检测到的ORB关键点ORBPoints对象。

点= detectorb特征(I);

使用selectUniform对象函数选择10个ORB关键点。的输出。selectUniform对象函数是ORBPoints对象。

newPoints = selectUniform(points,10,size(I))
newPoints = 10x1 ORBPoints数组属性:位置:[10x2 single]度量:[10x1 single]计数:10比例:[10x1 single]方向:[10x1 single]

显示所选关键点在图像上的位置和比例。

figure imshow(I) hold住情节(newPoints)

图中包含一个轴对象。axis对象包含image、line类型的3个对象。

显示(x, y)所选关键点的坐标。

x = newPoints.Location(:,1);y = newPoints.Location(:,2);(x, y)
ans =10x2单矩阵147 62 111 63 143 67 127 89 47 124 34 154 183 205 113 206 111 207 148 66

显示所选关键点的方向。

newPoints。取向
ans =10x1单列向量5.4682 0.7888 5.3084 6.2443 2.8221 3.8440 6.1212 6.0344 4.8840 5.5535

提示

虽然ORBPoints可以容纳多个点,它是一个标量对象。因此,元素个数(ORBPoints)总是返回1。这个值可以与长度(ORBPoints),它返回对象持有的真实点数。

参考文献

[1] Rublee, E. V. Rabaud, K. Konolige, G. Bradski。“ORB: SIFT或SURF的有效替代品。”在2011年计算机视觉国际会议论文集,页2564-2571。巴塞罗那,西班牙:IEEE, 2011。

扩展功能

版本历史

在R2019a中引入