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

pointCloud

3 次元点群を格納するオブジェクト

説明

pointCloud オブジェクトは、3 次元座標系の一連の点から点群データを作成します。点群データはプロパティにリストされているプロパティをもつオブジェクトとして格納されます。オブジェクト関数を使用して、目的の点を点群データから取得、選択、および削除します。

作成

説明

ptCloud = pointCloud(xyzPoints) は、xyzPoints によって指定された座標をもつ点群オブジェクトを返します。

ptCloud = pointCloud(xyzPoints,Name,Value) は、1 つ以上の Name,Value のペアの引数として指定されたプロパティをもつ pointCloud オブジェクトを作成します。たとえば、pointCloud(xyzPoints,'Color',[0 0 0]) は点 xyzPointsColor プロパティを [0 0 0] と設定します。各プロパティ名を引用符で囲みます。指定していないプロパティはすべて既定値になります。

入力引数

すべて展開する

3 次元座標点。M 行 3 列または M x N x 3 の配列として指定します。3 次元座標点は、3 次元座標空間の点の位置 x、y、および z を指定します。この引数によって Location プロパティが設定されます。

データ型: single | double

出力引数

すべて展開する

点群。プロパティにリストされているプロパティをもつ pointCloud オブジェクトとして返されます。

プロパティ

すべて展開する

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

3 次元座標空間内の点の位置。M 行 3 列または M x N x 3 の配列として指定します。各エントリによって 3 次元座標空間内の点の x 座標、y 座標、および z 座標が指定されます。名前と値のペアとしてこのプロパティを設定することはできません。入力引数 xyzPoints を使用します。

データ型: single

点群の色。M 行 3 列または M x N x 3 の配列として指定します。このプロパティを使用して、点群の点の色を設定します。各エントリによって点群データの点の RGB カラーが指定されます。そのため、すべての点に同じ色を指定したり、点ごとに異なる色を指定したりできます。

  • Color のデータ型を single または double と指定する場合、指定される RGB 値は [0, 1] の範囲内になければなりません。

  • Color のデータ型を uint8 と指定する場合、指定される RGB 値は [0, 255] の範囲内になければなりません。

座標Color有効な割り当て
M 行 3 列の配列各点の RGB 値が含まれる M 行 3 列の配列

M x N x 3 の配列各点の RGB 値が含まれる M x N x 3 の配列

データ型: uint8

表面法線。M 行 3 列または M x N x 3 の配列として指定します。このプロパティを使用して、点群の各点についての法線ベクトルを指定します。表面法線の各エントリによって法線ベクトルの x、y、および z 成分が指定されます。

座標表面法線
M 行 3 列の配列各行に、対応する法線ベクトルが含まれる、M 行 3 列の配列。
M x N x 3 の配列各点の 1 x 1 x 3 の法線ベクトルが含まれる M x N x 3 の配列。

データ型: single | double

各点でのグレースケール強度。M 行 1 列のベクトルまたは M 行 N 列の行列として指定します。関数によって、各強度値が現在のカラーマップの色値にマッピングされます。

座標強度
M 行 3 列の配列各行に、対応する強度値が含まれる、M 行 1 列のベクトル。
M x N x 3 の配列各点の強度値が含まれる M 行 N 列の行列。

データ型: single | double

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

点群内の点の数。正の整数として格納されます。

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

x 軸上の座標の範囲。1 行 2 列のベクトルとして保存されます。

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

y 軸上の座標の範囲。1 行 2 列のベクトルとして保存されます。

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

z 軸上の座標の範囲。1 行 2 列のベクトルとして保存されます。

オブジェクト関数

findNearestNeighbors点群内の点の最近傍を検出
findNeighborsInRadiusFind neighbors within a radius of a point in the point cloud
findPointsInROI点群の関心領域内の点を検出
removeInvalidPointsRemove invalid points from point cloud
selectSelect points in point cloud

すべて折りたたむ

3 次元座標点をワークスペースに読み取ります。

load('xyzPoints');

入力点座標から点群オブジェクトを作成します。

ptCloud = pointCloud(xyzPoints);

点群オブジェクトのプロパティを調べます。

ptCloud
ptCloud = 
  pointCloud with properties:

     Location: [5184×3 single]
        Color: []
       Normal: []
    Intensity: []
        Count: 5184
      XLimits: [-3 3.4338]
      YLimits: [-2 2]
      ZLimits: [0.0016 3.1437]

pcshowを使用して点群を表示します。

pcshow(ptCloud)

点群データの色の変更

点群データと同じサイズの RGB カラー配列を作成します。点の色を赤に設定します。

cmatrix = ones(size(ptCloud.Location)).*[1 0 0];

色プロパティを RGB カラー配列に設定した点群オブジェクトを作成します。

ptCloud = pointCloud(xyzPoints,'Color',cmatrix);
pcshow(ptCloud)

点群データへの表面法線の追加

pcnormalsを使用して、点群データに対応する表面法線を計算します。

normals = pcnormals(ptCloud);

入力点座標から点群オブジェクトを作成します。計算された表面法線を点群オブジェクトに追加します。

ptCloud = pointCloud(xyzPoints,'Normal',normals);

点群を表示して、表面法線をプロットします。

pcshow(ptCloud)
x = ptCloud.Location(:,1);
y = ptCloud.Location(:,2);
z = ptCloud.Location(:,3);
u = normals(:,1);
v = normals(:,2);
w = normals(:,3);
hold on
quiver3(x,y,z,u,v,w);
hold off

ヒント

pointCloud オブジェクトは handle オブジェクトです。点群の個別のコピーを作成する場合には、MATLAB® copy メソッドを使用できます。

ptCloudB = copy(ptCloudA)

点群関数によって変更可能な点群のコピーを 1 つ保持する場合は、入力と出力に同じ点群変数名を使用します。

ptCloud = pcFunction(ptCloud)

拡張機能

R2015a で導入