主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

pcfitplane

3次元点群への平面の近似

説明

模型= pcfitplane (ptCloudInmaxDistance)は,インライア点から平面までの最大許容距離が指定されている点群に平面を近似します。この関数は,平面を表す幾何学的モデルを返します。

この関数は,M-estimator样品一致(MSAC)アルゴリズムを使用して平面を検出します。MSACアルゴリズムは,随机样本的共识(RANSAC)アルゴリズムのバリアントです。

模型= pcfitplane (ptCloudInmaxDistancereferenceVector)は1行3列のreferenceVector入力によって追加の方向の制約が指定されている点群に平面を近似します。

模型= pcfitplane (ptCloudInmaxDistancereferenceVectormaxAngularDistance)は,最大角距離が指定されている点群に平面を近似します。

(模型inlierIndicesoutlierIndices) = pcfitplane (ptCloudInmaxDistance)は,点群入力のインライア点と外れ値点の線形インデックスを追加で返します。

(___meanError) = pcfitplane (ptCloudInmaxDistance)は,前述の構文のいずれかを使用し,インライア点からモデルまでの距離の平均誤差を追加で返します。

(___) = pcfitplane (ptCloudInmaxDistance名称,值)は1つ以上の名称,值ペアの引数によって指定された追加オプションを使用します。

すべて折りたたむ

点群を読み込みます。

负载(“object3d.mat”)

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

图pcshow (ptCloud)包含(“X (m)”) ylabel (“Y (m)”) zlabel (“Z (m)”)标题(原始点云的)

图中包含一个坐标轴。标题为Original Point Cloud的轴包含一个类型为scatter的对象。

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

maxDistance = 0.02;

平面の法線ベクトルを設定します。

referenceVector = [0, 0, 1];

最大角距離を5度に設定します。

maxAngularDistance = 5;

最初の平面であるテーブルを検出して,点群から抽出します。

[model1, inlierIndices outlierIndices] = pcfitplane (ptCloud,maxDistance、referenceVector maxAngularDistance);plane1 =选择(ptCloud inlierIndices);remainPtCloud =选择(ptCloud outlierIndices);

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

roi =[正无穷,0.4,正,负,正);sampleIndices = findPointsInROI (remainPtCloud roi);

残りの点群から左の壁を検出して抽出します。

[model2, inlierIndices outlierIndices] = pcfitplane (remainPtCloud,maxDistance,“SampleIndices”, sampleIndices);plane2 =选择(remainPtCloud inlierIndices);remainPtCloud =选择(remainPtCloud outlierIndices);

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

图pcshow (plane1)标题(第一架飞机的)

图中包含一个坐标轴。标题为First Plane的轴包含一个类型为scatter的对象。

图pcshow (plane2)标题(第二架飞机的)

图中包含一个坐标轴。标题为Second Plane的坐标轴包含一个类型为scatter的对象。

图pcshow (remainPtCloud)标题(“剩下的点云”)

图中包含一个坐标轴。标题为Remaining Point Cloud的轴包含一个类型为scatter的对象。

入力引数

すべて折りたたむ

点群。pointCloudオブジェクトとして指定します。

インライア点から平面までの最大距離。スカラー値として指定します。点群に使用している単位と一致する単位で距離を指定します。

データ型:|

基準となる方向の制約。1行3列のベクトルで指定します。

データ型:|

近似される平面の法線ベクトルと基準方向の間の最大絶対角距離。角度のスカラー値として指定します。

データ型:|

名前と値のペアの引数

オプションの引数名称,值のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:“SampleIndices”[]

入力点群でサンプリングする点の線形インデックス。”SampleIndices“と列ベクトルで構成されるコンマ区切りのペアとして指定します。空ベクトルの場合は,平面を近似するRANSAC反復ですべての点がサンプリングの候補になります。サブセットを指定すると,モデルを近似するためにサブセット内の点のみがサンプリングされます。

点のサブセットを指定すると,プロセスを大幅に高速化し,試行回数を減らすことができます。pointCloudオブジェクトのfindPointsInROIメソッドを使用してインデックスベクトルを生成できます。

インライアを検出するためのランダム試行の最大回数。MaxNumTrials“と正の整数で構成されるコンマ区切りのペアとして指定します。この値を大きくすると出力のロバスト性は向上しますが,計算量が増加します。

最大数のインライアの検出に関する信頼度のパーセント比。”信心“と[0 100]の範囲の数値スカラーで構成されるコンマ区切りのペアとして指定します。この値を大きくすると出力のロバスト性は向上しますが,計算量が増加します。

出力引数

すべて折りたたむ

平面の幾何学的モデル。planeModelオブジェクトとして返されます。

入力点群に有効な点が十分に含まれていない場合や,関数で十分なインライア点を検出できない場合は,出力モデルの係数がゼロに設定されます。

入力点群内のインライア点の線形インデックス。列ベクトルとして返されます。

入力点群内の外れ値点の線形インデックス。列ベクトルとして返されます。

インライア点からモデルまでの距離の平均誤差。スカラー値として返されます。

参照

Torr, P. H. S.和A. Zisserman。“MLESAC:一种新的用于估计图像几何的鲁棒估计器”。计算机视觉与图像理解。

拡張機能

C / c++コード生成
MATLAB®编码器™を使用してCおよびc++コードを生成します。

R2015bで導入