無料お見積もり・お問い合わせ

ライブラリ

CloudCompareを使用した3Dデータの解析・操作の方法、3Dスキャナの原理など3D技術に関連するトピックを掲載します。

CC_12 CloudCompareのRasterize機能(ラスタライズその1-点の集約・補完)

2025.05.30

  • 3Dデータ
  • ライブラリ
  • CloudCompare

Rasterize(ラスタライズ)機能では、点を集約、補完して新しい点群やメッシュとして出力したり、等高線を作成することができます。今回は点の集約、補完とメッシュ作成を、次回は等高線作成機能をご紹介します

 

 

3Dデータを構成する点は多くの場合、ある部分は欠け、逆にある部分は密集するなど、まんべんなく分布してはいません。形状を把握したい場合、この点の偏在がネックになります。ラスタライズ機能を使うことで、点の偏在を均し、形状をよりわかりやすくすることが可能です。この作業は、次回の等高線作成の前段階としても必須になります。

 

ラスタライズ機能をテストするためのサンプルデータを用意しました(CC_012.ply)。このページ下部のリンクからダウンロードできます。CloudCompareを起動後、CC_012.ply を3Dビュー上にドラッグアンドドロップしてください。

 

■ラスタライズ設定

DBツリーでCC_012.ply データを選択し、メインツールバーの「ラスタライズ」ボタン(格子柄アイコン)をクリック、またはメニューバーのTools→Projection→Rasterizeをクリックします。3Dビュー上に、ラスタライズ設定画面が表示されます。

 

ツールバーまたはメニュー項目から選択

 

Rasterize設定画面

 

多くの設定項目があり、様々な条件で点群やメッシュを作成できます。

 

■ラスタライズと点群の出力

ラスタライズでは、点群を含む空間をまず2Dの平面として捉え、その平面を分割する正方形の格子(グリッド)に点が1つずつ入るように処理をします。結果的に、平面上で均等に分布した点が得られます。サンプルデータを使って実際にテストしてみます。

 

Grid、Projectionの設定項目

 

ラスタライズの最初の段階で必要なものはGrid項目にあるstepの設定です。ここでのstepは、個々のグリッドの一辺の大きさを表し、sizeはグリッドの総数(最終的に点群の総数に近い)がいくつになるのかを示しています。ひとまずstepを3.0、その他は上記図の通りに設定して、Update gridボタンをクリックしてください。

 

Update Grid後のラスタライズ設定画面

 

設定画面右側にラスタライズされた点群の2D画像が表示されています。画像は小さなモザイクで構成されていて、このモザイク一個一個がグリッドです。stepを3.0に設定したので、3mm×3mmの小さな正方形が、横76×縦58個並んでいます。個々のグリッドの色は、Z方向の高さを示しています。グリッド内には元々複数の点が存在し、おのおのがZ値を持っていましたが、集約されて一つになりました。集約の方法はProjectionの項で設定されているとおり、average=平均値です。

 

ここまでの結果を、点群として出力します。設定画面左下部寄りにある「Cloud」ボタンをクリックし、次いで右下隅の「OK」ボタンをクリックしてください。

 

出力された点群rastaer(3)

 

DBツリーには、元データ名+raster(3)の名称で、点群データが追加されています。(元データは自動で非表示に、追加データのみビュー上に表示)。点群内の点が均等に、整然と配置されているのが見て取れます。この点間の平面上の距離は、さきほど指定した通り3mmです。上図右は、回転し角度を変えて表示した例です。もともと多数あった点が、各グリッド一つずつに集約され、XYは各グリッドの中心の座標、Z座標はグリッド内の点のZ値の平均値が割り振られました。もとの形状を保ちつつ、点が一定の密度で均されているイメージです。

 

■メッシュの出力

ラスターデータは、メッシュとしても簡単に出力できます。DBツリーでCC_012.ply データを選択し、メインツールバーの「ラスタライズ」ボタン(格子柄アイコン)をクリック→ラスタライズ設定画面が表示されます。さきほどの設定値(step3.0)が表示されていることを確認してupdate grid押下後、設定画面左下部寄りにある「Mesh」ボタンをクリックし、次いで右下隅の「OK」ボタンをクリックしてください。

 

出力されたメッシュを角度を変えて表示した例

 

DBツリーには、元データ名+meshの名称で、メッシュデータが追加されています。点群からメッシュを生成する際は、点が過密になっている部分でメッシュに捻じれや重複が生じやすくなりますが、ラスタライズによって点が均されたことにより、形状に沿ったメッシュが作成できています。

 

■グリッド設定による違い

設定するグリッドのステップが大きいほど、生成されるラスターデータは点が疎になっていきます。下記は、グリッドのステップをそれぞれ3mm/5mm/7mmに設定してUpdate gridしたのちに、点群とメッシュを出力したものです。

 

3mm/5mm/7mm ラスターデータ点群比較

 

3mm/5mm/7mm メッシュデータ比較

 

★グリッド設定時の注意点

グリッドの単位は読み込まれた元点群の単位と同じです。今回のサンプルデータは単位がmmですので、グリッドステップ指定の際、3.0=3mmとなりました。スキャナーの種類によっては、単位がM(メートル)の場合もありますので注意が必要です。ステップを入力すると、自動で入力枠の下に表示されるサイズ(グリッドの総数)が参考になります。あまりにもグリッド総数が大きくなる、逆に少なくなる場合はUpdate gridをクリックした際に続行確認のメッセージが表示されます。(下図例)

 

Update gridクリック時に表示される続行確認の例

 

■点を補完(Empty cells)

サンプルデータの中央部には、点の欠損した部分があります。ラスタライズ設定で、点の補完方法を設定できます。ラスタライズ設定画面左中央部の「Empty cells」のFill withの設定項目をクリックすると、ドロップダウンリストが表示されます。

 

Fill with(穴埋め方法)の設定

 

Fill withの設定項目

 leave empty …空白のまま残す

 minimum height …高さの最小値で穴埋め

 average height …高さの平均値で穴埋め

 maximum height …高さの最大値で穴埋め

 user specified value …ユーザー設定値で穴埋め

 interpolate …ドロネー方式による補完で穴埋め

 

以下は、Fill withの各設定値で穴埋めし、Update gridを実行後の2D画面表示です。(グリッドステップは3.0)

各設定値とUpdate grid後の2D表示

 

interpolate以外の設定では、同一の値で空白部が塗りつぶされています。minimum, average, maximumについては、ラスタライズ後のデータ点群の全てのZ値から算出された最小値、平均値、最大値がセットされます。user specified valueはユーザーがempty cell value に入力した値がそのまま使用されます。

interpolateは、穴あき部の周辺のデータからZ値を計算して補完するので、なだらかに穴埋めができます。Max edge lengthは、どのくらいの距離にある点までを補完計算の対象にするかの設定です。上図の例では10(mm)に設定しました。周辺に補完の対象が見つからない場合はEmpty cell value に入力した値がそのまま使用されます。

 

設定3タイプ比較 leave empty / average / interpolate

 

上図は、Empty cells の設定を変え、ラスタライズして出力した点群データです。欠け部分(中央の盛り上がりの前面)に注目してください。leave empty は空のまま、averageは点群全体のZ値の平均値で塗りつぶされています(緑色の点群)。interpolateは周辺近傍10mmの点群を計算対象にして補完されており、滑らかな形状で埋められていることが見て取れます。この穴埋め処理ができていることで、等高線(次回紹介予定)の形状もよりクリアになります。

 

★level必須

ラスタライズ機能を適用する前に、まず元データの軸を揃えておくことが必要になります。軸を揃える方法は「CC_06 CloudCompareのCrossSection機能その1」のLevel機能でご紹介しています。

 

関連動画

CloudCompareのRasterize機能その1

 

サンプルデータのダウンロード

CC_012…中央部分を切り出した路面データ(3Dデータ 拡張子 .ply )をzip形式で圧縮したもの ファイルサイズ約200kB