主要内容

ORBPoints

对象,用于存储ORB关键点

描述

一个ORBPoints对象将面向的快速和旋转的简要(ORB)键盘存储在图像中。您可以指定关键点并将其存储为ORBPoints对象。你也可以使用detectORBFeatures函数来检测图像中的ORB关键点。这detectORBFeatures函数将检测到的ORB关键点存储为ORBPoints对象。使用对象功能绘制、选择和操作检测到的ORB关键点。

创建

描述

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

例子

= orbpoints(地点创造一个ORBPoints对象的位置坐标集合地点。位置输入设置了地点财产。

例子

= orbpoints(地点名称,价值使用一个或多个名称-值对参数设置对象的属性。将每个属性名用引号括起来。例如,orbpoints(位置,'count',15)创造一个ORBPoints对象与数数财产设为15。

特性

展开全部

此属性是只读的。

关键点的位置,指定为m2矩阵。每一行的格式为[Xy,表示关键点的位置。m是关键点的数量。您无法将此属性设置为名称值对。使用地点输入参数。

此属性是只读的。

关键点的强度,指定为这些值之一:

  • 标量检测的关键点具有相同的强度。在这种情况下,对象分配相同的对象公制所有关键点的值。

  • 一个m-Element矢量 - 检测到的键点具有不同的强度值。在这种情况下,对象分配不同公制对每个关键点的值。m是关键点的数量。

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

数据类型:单身的

此属性是只读的。

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

此属性是只读的。

规模因子,指定为以下值之一:

  • 标量——所有关键点都在相同的分解级别上被检测。在这种情况下,对象分配相同的对象规模所有关键点的值。

  • 一个m-Element矢量 - 在不同级别的分解中检测到关键点。在这种情况下,对象分配不同规模对每个关键点的值。m是关键点的数量。

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

例子:orbpoints(位置,'scale',1.2)

数据类型:单身的

此属性是只读的。

弧度中的关键点的角度指定为其中一个值:

  • 标量检测的键点具有相同的方向。在这种情况下,对象分配相同的对象方向所有关键点的值。

  • 一个m-Element矢量 - 检测到的键点是不同的方向。在这种情况下,对象分配不同方向对每个关键点的值。m是关键点的数量。

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

例子:OrbPoints(位置,'方向',0.7854)

数据类型:单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32|UINT64

对象功能

是空的 确定点对象是否为空
长度 存储点数
阴谋 情节点
selectStrongest 选择具有最强度量的点
尺寸 返回一个点对象的大小
SelleDiform. 选择统一分布的特征点子集

例子

全部收缩

将图像读入工作区。

我= imread('牌照.jpg');

将图像转换为灰度图像。

我= im2gray(i);

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

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 0

为每个关键点指定比例值。

Scale = [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(i)持有情节(点)

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

将图像读入工作区。

我= imread(“cameraman.tif”);

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

点= detectORBFeatures(我);

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

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

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

图imshow(i)持有情节(纽波特)

图中包含一个坐标轴。轴包含三个对象的类型为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.Oorientation
ans =.10x1单列向量5.4682 0.7888 5.3084 6.2443 2.8221 3.8440 6.1212 6.0344 4.8840 5.5535

提示

虽然ORBPoints可以持有许多点,它是一个标量对象。所以,numel(orbpoints)始终返回1.此值可能不同于长度(orbpoints),返回对象保持的真实点数。

参考文献

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

扩展能力

在R2019A介绍