Main Content

readPointCloud

LAS または LAZ ファイルから点群データを読み取り

R2020b 以降

説明

ptCloud = readPointCloud(lasReader) は、入力 lasFileReader オブジェクトで示される LAS または LAZ ファイルから点群データを読み取り、それを pointCloud オブジェクト ptCloud として返します。

[ptCloud,ptAttributes] = readPointCloud(lasReader,"Attributes",ptAtt) は、指定された点の属性 ptAtt を LAS または LAZ ファイルから読み取ります。この関数では、点群に加え、点群の各点の指定された属性を返します。

[___] = readPointCloud(___,Name,Value) は、前述の構文の任意の引数の組み合わせに加え、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば、"ROI",[5 10 5 10 5 10] は、関数で点群を読み取る関心領域 (ROI) を設定します。

すべて折りたたむ

この例では、LAS/LAZ ファイルから点群データを読み取って可視化する方法を示します。

LAZ ファイル用の lasFileReader オブジェクトを作成します。その後、関数 readPointCloud を使用して点群データを LAZ ファイルから読み取り、pointCloud オブジェクトを生成します。

LAZ ファイルのデータにアクセスするための lasFileReader オブジェクトを作成します。

filepath = fullfile(toolboxdir("lidar"),"lidardata", ...
    "las","aerialLidarData.laz");
lasReader = lasFileReader(filepath);

関数 readPointCloud を使用して、点群データを LAZ ファイルから読み取ります。

ptCloud = readPointCloud(lasReader);

点群を可視化します。

figure
pcshow(ptCloud.Location)

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

LAZ ファイルの点群データを分類データに基づいて分けて可視化します。

LAZ ファイルのデータにアクセスするための lasFileReader オブジェクトを作成します。

path = fullfile(toolboxdir("lidar"),"lidardata", ...
    "las","aerialLidarData.laz");
lasReader = lasFileReader(path);

関数 readPointCloud を使用して、点群データとそれに関連する点の分類属性を LAZ ファイルから読み取ります。

[ptCloud,pointAttributes] = readPointCloud(lasReader,"Attributes","Classification");

それぞれの点に分類属性に基づいて色を付けます。ラベル イメージの形状を点群の形状に変更します。

labels = label2rgb(pointAttributes.Classification);
colorData = reshape(labels,[],3);

色分けされた点群を可視化します。

figure
pcshow(ptCloud.Location,colorData)

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

入力引数

すべて折りたたむ

LAS または LAZ ファイル リーダー。lasFileReader オブジェクトとして指定します。

点の属性。文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string のベクトルとして指定します。入力には次のオプションを 1 つ以上含める必要があります。

  • "Classification"

  • "GPSTimeStamp"

  • "LaserReturn"

  • "NumReturns"

  • "NearIR"

  • "ScanAngle"

  • "UserData"

  • "PointSourceID"

  • "ScannerChannel"

  • "ScanDirectionFlag"

  • "EdgeOfFlightLineFlag"

  • "WaveformData"

関数は、各点の指定された属性を lidarPointAttributes オブジェクト ptAttributes に返します。指定されていない属性は空として返されます。

データ型: char | string | cell

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name引用符で囲みます。

例: "ROI",[5 10 5 10 5 10] は、関数で点群を読み取る関心領域 (ROI) を設定します。

点群で読み取る ROI。'ROI' と [xmin xmax ymin ymax zmin zmax] の順序の 6 要素行ベクトルからなるコンマ区切りのペアとして指定します。各要素は実数でなければなりません。ROI の x 軸、y 軸、z 軸の範囲の値を指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

GPS タイムスタンプの範囲。'GpsTimeSpan' と [startTime endTime] を示す duration オブジェクトの 2 要素ベクトルからなるコンマ区切りのペアとして指定します。タイムスタンプは正でなければなりません。

データ型: duration

目的の分類番号。'Classification' と有効な分類番号のベクトルからなるコンマ区切りのペアとして指定します。

有効な分類番号の範囲は 0 ~ 255 です。

分類番号分類タイプ
0作成済み (分類不可)
1未分類
2地面
3低植生
4中植生
5高植生
6建物
7低点 (ノイズ)
8予約済み
9水域
10鉄道
11路面
12予約済み
13保護線 (シールド)
14導線 (フェーズ)
15送電塔
16電線接続構造物 (絶縁体)
17橋梁床版
18高ノイズ
19 高架
20無視された地面
21積雪
22時間的に排他
23- 63予約済み
64 - 255ユーザー定義

これらは、標準のクラスの名前とクラスとオブジェクトのマッピングを示したものです。クラスの定義とマッピングは、LAS または LAZ ファイルの作成元のアプリケーションによって、これらの標準とは異なる場合があります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

リターン番号ごとの点の数。'LaserReturn' と有効なリターン番号のベクトルからなるコンマ区切りのペアとして指定します。有効なリターン番号は、1 から入力 lasFileReader オブジェクトの NumReturns プロパティまでの整数です。ベクトルの値 i のそれぞれについて、関数はリターン番号が i である点のみを含む点群を返します。

リターン番号はレーザー パルスが反射してセンサーに戻る回数になります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

点群。pointCloud オブジェクトとして返されます。

点の属性データ。lidarPointAttributes オブジェクトとして返されます。このオブジェクトには、ptCloud 出力に含まれる各点の指定された属性 ptAtt のデータが格納されます。

バージョン履歴

R2020b で導入

すべて展開する