主要内容

本页采用了机器翻译。点击此处可查看英文原文。

planeModel

用于存储参数化平面模型的对象

说明

根据描述平面的参数,构建并存储一个参数化平面模型。

创建对象

描述

model = planeModel(parameters) 根据描述一个平面的 1×4 维输入向量 Parameters 构建一个参数化平面模型。

示例

输入参量

全部展开

平面参数,指定为一个 1×4 的向量。此输入指定了 Parameters 属性。四个参数 [a,b,c,d] 描述了一个平面的方程:

ax+by+cz+d=0

属性

全部展开

这些属性是只读的。

平面模型参数,以 1×4 向量的形式存储。这些参数由 parameters 参量指定。

该平面的法向量,以 1×3 向量的形式存储。向量 [a,b,c] 指定了该平面的未归一化法向量。

对象函数

plotPlot parametric model
normalRotationCompute transform for rotation of normal to plane

示例

全部折叠

加载点云。

load("object3d.mat")

显示点云并为图窗标注说明。

figure
pcshow(ptCloud)
xlabel("X(m)")
ylabel("Y(m)")
zlabel("Z(m)")
title("Original Point Cloud")

设置平面拟合的最大点到平面距离(2 厘米)。

maxDistance = 0.02;

设置该平面的法向量。

referenceVector = [0,0,1];

将最大角距离设置为 5 度。

maxAngularDistance = 5;

检测出第一个平面(即桌子),并将其从点云中提取出来。

[model1,inlierIndices,outlierIndices] = pcfitplane(ptCloud,...
            maxDistance,referenceVector,maxAngularDistance);
plane1 = select(ptCloud,inlierIndices);
remainPtCloud = select(ptCloud,outlierIndices);

设置感兴趣区域,以限定对第二平面(左侧壁)的搜索范围。

roi = [-inf,inf;0.4,inf;-inf,inf];
sampleIndices = findPointsInROI(remainPtCloud,roi);

检测左侧墙体,并将其从剩余的点云中提取出来。

[model2,inlierIndices,outlierIndices] = pcfitplane(remainPtCloud,...
            maxDistance,SampleIndices=sampleIndices);
plane2 = select(remainPtCloud,inlierIndices);
remainPtCloud = select(remainPtCloud,outlierIndices);

将这两个平面和其余点绘制出来。

figure
pcshow(plane1)
title("First Plane")

figure
pcshow(plane2)
title("Second Plane")

figure
pcshow(remainPtCloud)
title("Remaining Point Cloud")

版本历史记录

在 R2015b 中推出