最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

pcdenoise

3 次元点群からのノイズの除去

構文

ptCloudOut = pcdenoise(ptCloudIn)
[ptCloudOut,inlierIndices,outlierIndices] = pcdenoise(ptCloudIn)
[ptCloudOut,___] = pcdenoise(___Name,Value)

説明

ptCloudOut = pcdenoise(ptCloudIn) は、外れ値を削除するフィルター処理された点群を返します。

[ptCloudOut,inlierIndices,outlierIndices] = pcdenoise(ptCloudIn) は、インライアおよび外れ値として指定される点の線形インデックスを追加で返します。

[ptCloudOut,___] = pcdenoise(___Name,Value) は、前述の構文のいずれかを使用し、1 つ以上の Name,Value 引数ペアによって指定された追加オプションを使用します。

すべて折りたたむ

平面の点群を作成します。

gv = 0:0.01:1;
[X,Y] = meshgrid(gv,gv);
ptCloud = pointCloud([X(:),Y(:),0.5*ones(numel(X),1)]);

figure
pcshow(ptCloud);
title('Original Data');

一様分布するランダムなノイズを追加します。

noise = rand(500, 3);
ptCloudA = pointCloud([ptCloud.Location; noise]);

figure
pcshow(ptCloudA);
title('Noisy Data');

外れ値を削除します。

ptCloudB = pcdenoise(ptCloudA);

figure;
pcshow(ptCloudB);
title('Denoised Data');

入力引数

すべて折りたたむ

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

名前と値のペアの引数

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

例: 'Threshold''1.0' の場合、しきい値が 1.0 に設定されます。

最近傍の点の数。'NumNeighbors' と正の整数 (ピクセル単位) で構成されるコンマ区切りのペアとして指定します。この値を使用して、すべての点の両隣との平均距離の平均値を推定します。この値を減らすと、フィルターはノイズの影響を受けやすくなります。この値を増やすと、計算数が増えます。

外れ値のしきい値。'Threshold' とスカラーとで構成されるコンマ区切りのペアとして指定します。既定の設定では、しきい値はすべての点の両隣との平均距離の平均からの 1 標準偏差です。1 つの点は、その k 最近傍との平均距離が指定されたしきい値を超える場合、その点は外れ値と見なされます。

出力引数

すべて折りたたむ

フィルター処理された点群。pointCloud オブジェクトとして返されます。

インライア点の線形インデックス。1 行 N 列のベクトルとして返されます。

データ型: uint32

外れ値の点の線形インデックス。線形インデックスの 1 行 N 列のベクトルとして返されます。

データ型: uint32

参照

[1] Rusu, R. B., Z. C. Marton, N. Blodow, M. Dolha, and M. Beetz. “Towards 3D Point Cloud Based Object Maps for Household Environments”. Robotics and Autonomous Systems Journal. 2008.

R2015a で導入