主要内容

ORBPoints

对象,用于存储ORB关键点

描述

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

创建

描述

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

例子

= ORBPoints (位置创建一个ORBPoints对象的位置坐标集合位置.位置输入设置位置财产。

例子

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

属性

全部展开

此属性是只读的。

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

此属性是只读的。

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

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

  • 一个-元素向量-检测到的关键点有不同的强度值。在这种情况下,对象分配不同的度规重视每个关键点。是关键点的数量。

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

数据类型:

此属性是只读的。

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

此属性是只读的。

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

  • 标量——所有关键点都在相同的分解级别上被检测。在本例中,对象分配相同的值规模重视所有的关键点。

  • 一个-元素向量-关键点在分解的不同层次被检测。在这种情况下,对象分配不同的规模重视每个关键点。是关键点的数量。

比例因子指定检测关键点的分解水平。

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

数据类型:

此属性是只读的。

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

  • 标量检测的关键点具有相同的方向。在本例中,对象分配相同的值取向重视所有的关键点。

  • 一个-元素向量-检测到的关键点方向不同。在这种情况下,对象分配不同的取向重视每个关键点。是关键点的数量。

关键点产生的角度是参照图像的水平轴来定义的。关键点的坐标设为轴的原点。

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

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

对象的功能

isempty 确定点对象是否为空
长度 存储点数
情节 情节点
selectStrongest 选择具有最强参数的点
大小 返回点对象的大小
selectUniform 选择均匀分布的特征点子集

例子

全部折叠

将图像读入工作区。

我= imread (“licensePlates.jpg”);

将图像转换为灰度图像。

I = im2gray(我);

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

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

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

点= ORBPoints(位置)
点数= 6x1 ORBPoints array with properties:位置:[6x2 single]度量:[6x1 single]计数:6比例:[6x1 single]方向:[6x1 single]

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

点。规模
ans =6x1单列向量1 1 1 1 1
点。取向
ans =6x1单列向量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

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

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

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

图imshow(我)情节(分)

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

将图像读入工作区。

我= imread (“cameraman.tif”);

使用detectORBFeatures函数检测图像中的ORB关键点。函数将检测到的ORB关键点作为ORBPoints对象。

点= detectORBFeatures(我);

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

newPoints = selectUniform(分,10、尺寸(I))
newPoints = 10x1 ORBPoints array with properties:位置:[10x2 single]度量:[10x1 single]计数:10比例:[10x1 single]方向:[10x1 single]

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

图imshow(我)情节(newPoints)

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

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

x = newPoints.Location (: 1);y = newPoints.Location (:, 2);(x, y)
ans =10 x2单一矩阵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),它返回该对象持有的真实点数。

参考文献

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

扩展功能

介绍了R2019a