kentaPtの日記

主に画像解析のことなどの勉強記録として投稿します。もし何かございましたら、github (https://github.com/KentaItakura)などからご連絡いただけると幸いです。

Cloud Compareを利用して点群を画像に変換してみよう

1. はじめに

この記事では、3次元点群の閲覧や処理の無料ソフトであるCloud Compare (クラウドコンペア: 以下CCとする)を利用して、点群を上から見た画像に変換する方法についてまとめます。設定方法によっては、オルソ画像やデジタル標高モデル(DEM)に相当するファイルをエキスポートすることができます。

CCのダウンロードリンクは以下の通りです。

www.danielgm.net

また、本記事のより詳しい内容は以下のページをご参照ください。

www.cloudcompare.org

本記事は、CCに点群をインポートする方法や閲覧する方法などはすでに把握しているとして進めます。

2. 変換する方法

2.1. アイコンのクリック

Convert a cloud to 2D raster を選択します。以下の赤枠をクリックしてください。

2.2. パラメータ設定

ここでは、簡単にパラメーター設定を行います。特に重要な値のみ本記事では記述いたします。

Gridについて

step: 2次元画像に変換した時の1ピクセル値の距離。この値を変えることで、sizeの値も変わる

size: 2次元画像に変換した時の画像サイズ。大きいほどファイルサイズも大きくなる

active layer: どの値を利用して2次元画像に変換するか。Height grid valuesでは、そのピクセルの位置の高さ(Zの値)を利用して変換する。他の値を利用して2次元画像に変換したい場合はこの値を変更する

Projectionについて

direction: どの向きに沿って2次元画像に変換するかどうか。例えば、Zを設定すると、ちょうど鉛直上向きから見たとき(上から下を見たとき)の2次元画像に変換する

cell height: 各グリッドのどの値を利用して、2次元画像に変換するかどうか。maximumの場合は、そのグリッドに位置する値の中で最大値を利用する。

例えば、directionをXにすると、横から見たような画像になる。

Empty cellsについて

そのグリッドに相当する点が存在しないときに、どのような処理をするか。例えば、点群ファイルに大きな穴があると、それを上から見たときにその穴に相当する場所の値(例:Z値)は存在しない。その場合は、値がないとする、近くの値で補間する、といった処理を選択することができる。以下の画像のように、点群の真ん中に穴がある場合、白色になっていることがわかる。仮に、Empty cellsに処理を指定した場合、それに従ってそのグリッドの値を計算する。

2.3. 計算結果の更新

2.2のパラメーター設定を行うことで、投影した時の様子が決定します。初めは右側のパネルが空白ですが、赤色のボタンをクリックすることで、右側のパネルも更新されます。出力結果のイメージが表示されていることがわかります。

2.4. 結果の出力

以下の赤枠から計算結果を別ファイルとして保存することができます。

Raster: tif形式。GISソフトウェアなどで閲覧することができる。

Image: 画像形式。画像として保存できる。

Matrix: text形式。数値としてメモ帳などで確認できる。

3. 結果の確認

3.1. QGISでの読み込み

Raster形式で保存したファイルをQGISにて読み込みました。Empty cellsに関しては、特に処理を行っていません。点群を取得した位置で可視化されていることがわかります。

3.2. 画像の読み込み

Image形式でエキスポートした場合、png形式で画像が保存されました。報告書作成などに便利そうです。

3.3. Matrixでの読み込み

Matrixで保存した場合、以下のようにメモ帳で開くことができました。別の計算式などを別途実行したい場合やプログラミング言語を使って再処理したい場合などに便利そうです。

4. まとめ

本記事では、CCを利用して、点群から2次元画像に変換する方法について述べました。例えば、RGB情報を利用して投影すればオルソ画像になりますし、高さ情報を利用すれば、デジタル表層モデル(DSM)、また地表面の点のみを利用すればデジタル標高モデル(DEM)になると思います。設定を適切に変えることで、色々なデータに変換できて便利な機能でした。