Main Content

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

pcmerge

3 次元点群のマージ

説明

ptCloudOut = pcmerge(ptCloudA,ptCloudB,gridStep) は、ボックス グリッド フィルターを使用して、オーバーラップ領域内のマージされた点群を返します。gridStep は、フィルターの 3 次元ボックスのサイズを指定します。

すべて折りたたむ

X、Y、Z が [0, 100] の点を持つ点群を作成します。

ptCloudA = pointCloud(100*rand(1000,3));

部分的にオーバーラップする点群を作成します。

ptCloudB = pointCloud([70 20 30] + 100*rand(1000,3));

ボックス フィルターを使用して、2 つの点群をマージします。

ptCloudOut = pcmerge(ptCloudA, ptCloudB, 1);
pcshow(ptCloudOut);

Figure contains an axes object. The axes object contains an object of type scatter.

入力引数

すべて折りたたむ

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

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

グリッド フィルターの 3 次元ボックスのサイズ。数値として指定します。大きい細かなグリッドを構成する十分なリソースがない場合は gridStep のサイズを増やします。関数は、空間をサイズが gridStep の 3 次元ボックス (ボクセルとも呼ばれます) に分割します。次に、各ボクセルに含まれるすべての点の平均を取ります。平均の結果、ボクセル内のすべての点を表す新しい点が、マージした出力として生成されます。

データ型: single | double

出力引数

すべて折りたたむ

マージされた点群。pointCloud オブジェクトとして返されます。関数は、2 つの点群間のオーバーラップする領域の軸に沿った境界ボックスを計算します。境界ボックスは、gridStep で指定されたサイズのグリッド ボックスに分割されます。各グリッド ボックス内の点は、それらの位置、色、および法線を平均してマージされます。オーバーラップする領域の外の点には触れません。

ヒント

  • 2 つの点群に、ColorNormal などの同じプロパティのセットが入力されていない場合、返された点群ではこれらのプロパティがクリアされます。たとえば、ptCloudA に色があり、ptCloudB に色がない場合、ptCloudOut には色が含まれません。

  • 関数は、NaN 値または Inf 値の点を除外します。

拡張機能

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

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2015a で導入