主要内容

worldpointset

管理3-D到2-D点对应关系

描述

worldpointsetobject存储三维世界点和二维图像点之间的对应关系。你可以使用worldpointset对象的imageviewset对象来管理图像和地图数据,用于运动结构、视觉里程测量和视觉同步定位和映射(SLAM)。

创建

描述

例子

wpSet= worldpointset创建一个具有默认属性的worldpointset对象。使用对象函数来执行诸如添加、修改或删除对应关系、在视图中查找点以及查找点的视图等操作。

属性

全部展开

此属性是只读的。

3-D世界点,指定为-by-3矩阵,行包含[xyz世界分数。为三维世界点的个数。

此属性是只读的。

与世界点关联的视图标识符,指定为N-element整数行向量。

此属性是只读的。

3-D到2-D点的对应关系,指定为三列表。

描述
PointIndex 每一行包含一个世界点的线性索引。
ViewId 每行包含一个1 × -N向量,指定与相应世界点相关联的视图的id。N是与世界点相关的视图数。
FeatureIndex 每行包含一个1 × -N指定与世界点对应的特征点索引的向量。的对应元素所指定的视图中的特征点的索引ViewID细胞。

此属性是只读的。

每个世界点的平均观看方向,指定为-by-3矩阵,其中是点数。观看方向提供了一个估计的视角,从该视角可以观察到一个3-D点。平均观看方向是从世界点指向相关视图的摄像机中心的所有单位向量的平均值。当一个新的相机视图被引入到系统中时,可以根据距离限制设置的范围来预测在该视图中可能观察到的3-D世界点DistanceLimits

立方体对象和三个视图(分别表示view1、view2和viewN)用从对象的一个角点到三个视图中的每一个的向量来描绘。第四个不指向视图的向量被标记为“视图方向”。在视图附近绘制两条弧,并标记为“距离范围”。

此属性是只读的。

表示观察每个世界点的最小距离和最大距离。

三维点观测的距离限制,指定为-by-2向量,表示最小和最大距离,其中是点数。该范围表示三维点可以被观察到的距离。当一个新的相机视图被引入到系统中时,可以根据距离限制设置的范围来预测在该视图中可能观察到的3-D世界点ViewingDirection

立方体对象和三个视图(分别表示view1、view2和viewN)用从对象的一个角点到三个视图中的每一个的向量来描绘。第四个不指向视图的向量被标记为“视图方向”。在视图附近绘制两条弧,并标记为“距离范围”。

此属性是只读的。

View代表视图的id,用-element列向量,其中是点数。代表性视图对应于每个世界点的代表性视图中包含代表性特征的视图。一个有代表性的特征是与世界点相关联的所有特征描述符的中位数。

此属性是只读的。

代表性的特性描述符索引,指定为-element列向量,其中是点数。索引值对应于包含每个世界点的代表性特征描述符的视图。

此属性是只读的。

3-D世界点的数量,指定为标量。

对象的功能

addWorldPoints 将世界点添加到世界点集
removeWorldPoints 从世界点集中移除世界点
updateWorldPoints 更新世界点集中的世界点
addCorrespondences 更新世界点集中的世界点
removeCorrespondences 从世界点集中移除3-D到2-D的对应关系
updateCorrespondences 更新世界点集的三维到二维对应关系
updateLimitsAndDirection 更新距离限制和观看方向
updateRepresentativeView 更新代表视图ID和相应的特征索引
findViewsOfWorldPoint 找到观察世界点的视图
findWorldPointsInTracks 找到与点轨迹对应的世界点
findWorldPointsInView 找到视野中观察到的世界点

例子

全部折叠

加载一个垫,将包含立体声参数的文件导入工作空间。

负载(“webcamsSceneReconstruction.mat”);

将一对立体图像读入工作区。

I1 = imread(“sceneReconstructionLeft.jpg”);I2 = imread(“sceneReconstructionRight.jpg”);

不扭曲图像。

I1 = undistortion timage (I1,stereoParams.CameraParameters1);I2 = undistortion timage (I2,stereoParams.CameraParameters2);

定义感兴趣的矩形区域(ROI),格式为[X y宽高]。

roi = [30 30 size(I1,2)-30 size(I1,1)-30];

使用ROI从两个图像中检测和提取加速健壮特征(SURF)。

imagePoints1 = detectsurffatures (im2gray(I1),“投资回报”roi);imagePoints2 = detectsurffatures (im2gray(I2),“投资回报”roi);[feature1,validPoints1] = extractFeatures(im2gray(I1),imagePoints1,“正直”,真正的);[feature2,validPoints2] = extractFeatures(im2gray(I2),imagePoints2,“正直”,真正的);

将提取的特征相互匹配。

indexPairs = matchFeatures(feature1,feature2);

计算三维世界点。

matchedPoints1 = validPoints1(indexPairs(:,1));matchedPoints2 = validPoints2(indexPairs(:,2));worldPoints =三角测量(matchedPoints1,matchedPoints2,stereoParams);

创建一个worldpointset对象来管理通信。

wpSet = worldpointset;

加世界分到worldpointset

[wpSet,newPointIndices] = addWorldPoints(wpSet,worldPoints);

添加3-D到2-D点对应worldpointset

wpSet = addcorresponences (wpSet,1,newPointIndices,indexPairs(:,1));wpSet = addcorresponences (wpSet,2,newPointIndices,indexPairs(:,2));

显示世界点数。

pcshow (wpSet。WorldPoints,“VerticalAxis”“y”“VerticalAxisDir”“下来”“MarkerSize”, 45岁)

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

R2020b中介绍

全部展开

另请参阅

功能

对象