Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

planeModel

パラメトリック平面モデルを格納するオブジェクト

説明

平面を記述するパラメーターに基づいて、パラメトリック平面モデルを作成して保存します。

作成

説明

model = planeModel(parameters) は、平面を記述する 1 行 4 列の Parameters 入力ベクトルからパラメトリック平面モデルを作成します。

入力引数

すべて展開する

平面パラメーター。1 行 4 列のベクトルとして指定します。この入力は、Parameters プロパティを指定します。4 つのパラメーター [a,b,c,d] によって、次のように平面の方程式が記述されます。

ax+by+cz+d=0

プロパティ

すべて展開する

これらのプロパティは読み取り専用です。

平面モデル パラメーター。1 行 4 列のベクトルとして格納されます。これらのパラメーターは、入力引数 parameters によって指定されます。

平面の法線ベクトル。1 行 3 列のベクトルとして格納されます。[a,b,c] ベクトルは、平面の正規化されていない法線ベクトルを指定します。

オブジェクト関数

plotパラメトリック モデルのプロット
normalRotationCompute transform for rotation of normal to plane

すべて折りたたむ

点群を読み込みます。

load("object3d.mat")

点群を表示し、Figure にラベルを付けます。

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

平面近似用に点から平面までの最大距離 (2 cm) を設定します。

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);

関心領域を設定して 2 番目の平面である左の壁の探索範囲を制限します。

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);

2 つの平面と残りの点をプロットします。

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

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

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

バージョン履歴

R2015b で導入