readPointCloud
構文
説明
[
は、指定された点の属性 ptCloud
,ptAttributes
] = readPointCloud(lasReader
,"Attributes",ptAtt
)ptAtt
を LAS または LAZ ファイルから読み取ります。この関数では、点群に加え、点群の各点の指定された属性を返します。
[___] = readPointCloud(___,
は、前述の構文の任意の引数の組み合わせに加え、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば、Name,Value
)"ROI"
,[5 10 5 10 5 10]
は、関数で点群を読み取る関心領域 (ROI) を設定します。
例
LAZ ファイルからの点群データの読み取り
この例では、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)
LAZ ファイルの分類データに基づく点群の可視化
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)
入力引数
lasReader
— LAS または LAZ ファイル リーダー
lasFileReader
オブジェクト
LAS または LAZ ファイル リーダー。lasFileReader
オブジェクトとして指定します。
ptAtt
— 点の属性
[ ] (既定値) | 文字ベクトル | string スカラー | 文字ベクトルの cell 配列 | string のベクトル
点の属性。文字ベクトル、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
[-inf inf -inf inf -inf inf]
(既定値) | 6 要素の行ベクトル
点群で読み取る ROI。'ROI'
と [xmin xmax ymin ymax zmin zmax] の順序の 6 要素行ベクトルからなるコンマ区切りのペアとして指定します。各要素は実数でなければなりません。ROI の x 軸、y 軸、z 軸の範囲の値を指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
GpsTimeSpan
— GPS タイムスタンプの範囲
lasReader.GPSTimeLimits
(既定値) | duration
オブジェクトの 2 要素ベクトル
GPS タイムスタンプの範囲。'GpsTimeSpan'
と [startTime endTime] を示す duration
オブジェクトの 2 要素ベクトルからなるコンマ区切りのペアとして指定します。タイムスタンプは正でなければなりません。
データ型: duration
Classification
— 目的の分類番号
lasReader.ClassificationInfo.("Classification Value")
(既定値) | 有効な分類番号のベクトル
目的の分類番号。'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:lasReader.NumReturn
(既定値) | 有効なリターン番号のベクトル
リターン番号ごとの点の数。'LaserReturn'
と有効なリターン番号のベクトルからなるコンマ区切りのペアとして指定します。有効なリターン番号は、1 から入力 lasFileReader
オブジェクトの NumReturns
プロパティまでの整数です。ベクトルの値 i のそれぞれについて、関数はリターン番号が i である点のみを含む点群を返します。
リターン番号はレーザー パルスが反射してセンサーに戻る回数になります。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
ptCloud
— 点群
pointCloud
オブジェクト
点群。pointCloud
オブジェクトとして返されます。
ptAttributes
— 点の属性データ
lidarPointAttributes
オブジェクト
点の属性データ。lidarPointAttributes
オブジェクトとして返されます。このオブジェクトには、ptCloud
出力に含まれる各点の指定された属性 ptAtt
のデータが格納されます。
バージョン履歴
R2020b で導入R2022a: 点の属性の追加
次に示す追加の点の属性を ptAtt
引数に指定できるようになりました。
"UserData"
"PointSourceID"
"ScannerChannel"
"ScanDirectionFlag"
"EdgeOfFlightLine"
"WaveformData"
R2022a: LaserReturns
の名前を LaserReturn
に変更
LaserReturns
の名前が LaserReturn
に変更されました。コードを更新するには、LaserReturns
引数のすべてのインスタンスを LaserReturn
に置き換えます。
R2022a: 点の属性をオブジェクトとして返す
関数 readPointCloud
は、ptAttributes
引数を構造体ではなく lidarPointAttributes
オブジェクトとして返します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)