このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
segmentGroundSMRF
構文
説明
は、単純なモルフォロジー フィルター (SMRF) アルゴリズムを使用して、入力点群 groundPtsIdx
= segmentGroundSMRF(ptCloud
)ptCloud
を地面と地面以外の点にセグメント化します。SMRF アルゴリズムの詳細については、単純なモルフォロジー フィルターを参照してください。
は、グリッド要素の次元を追加で指定します。groundPtsIdx
= segmentGroundSMRF(ptCloud
,gridResolution
)
[
は、前述の構文の任意の入力引数の組み合わせを使用して、地面の点のインデックスに加え、地面の点と地面以外の点を個別の groundPtsIdx
,nonGroundPtCloud
,groundPtCloud
] = segmentGroundSMRF(___)pointCloud
オブジェクトとして返します。
[___] = segmentGroundSMRF(___,
は、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Name=Value
)ElevationThreshold=0.4
は、地面以外の点を識別するための高度のしきい値を 0.4
に設定します。
例
入力引数
出力引数
アルゴリズム
単純なモルフォロジー フィルター (SMRF) アルゴリズム[1]では、点群データを地面と地面以外の点にセグメント化します。このアルゴリズムは 3 つの段階で構成されます。
点群データから最小高度表面マップを作成する。
表面マップを地面と地面以外のグリッド要素にセグメント化する。
元の点群データをセグメント化する。
最小高度表面マップの作成
点群データを xy- 平面 (鳥瞰ビュー) に沿ってグリッドに分割します。
gridResolution
を使用してグリッド サイズを指定します。各グリッド要素 (ピクセル) の最も低い高度 (Zmin) の値を調べます。
すべての Zmin の値を組み合わせて 2 次元行列 (ラスター イメージ) にすることで、最小高度表面マップを作成します。
表面マップのセグメント化
最小表面マップにモルフォロジー オープニング処理を適用します。これにより、収縮フィルターが適用され、続いて膨張フィルターが適用されます。モルフォロジー オープニングの詳細については、モルフォロジー演算のタイプを参照してください。
モルフォロジー オープニングの近傍探索は、構造化要素の形状とそのウィンドウ半径で定義されます。円盤型の構造化要素を使用し、ウィンドウ半径は 1 ピクセルから始めます。詳細については、構造化要素を参照してください。
各グリッド要素について、最小表面マップとオープニング処理後の表面マップの間の勾配を計算します。この差が高度のしきい値を超えていれば、そのピクセルを地面以外として分類します。
手順 1 ~ 3 を反復的に実行します。
MaxWindowRadius
で指定された最大半径に達するまで、各反復でウィンドウ半径を 1 ずつ増やしていきます。この反復プロセスにより、最終的に点群の各ピクセルが地面または地面以外のいずれかに分類されたバイナリ マスクが得られます。
元の点群のセグメント化
元の最小表面マップにバイナリ マスクを適用して地面以外のグリッドを除去します。
塗りつぶされていないグリッドをイメージ内挿法を使用して塗りつぶし、推定高度モデルを作成します。
元の点群の各点と推定高度モデルの対応する点の間の高度差を計算します。この差が
ElevationThreshold
を超えていれば、そのピクセルを地面以外として分類します。各点の高度モデルの勾配を
ElevationScale
で乗算し、その結果をElevationThreshold
の値に加算して、急勾配の地面の点を識別します。
参照
[1] Pingel, Thomas J., Keith C. Clarke, and William A. McBride. “An Improved Simple Morphological Filter for the Terrain Classification of Airborne LIDAR Data.” ISPRS Journal of Photogrammetry and Remote Sensing 77 (March 2013): 21–30.https://doi.org/10.1016/j.isprsjprs.2012.12.002.
拡張機能
バージョン履歴
R2021a で導入