2021/1/12更新
点群PNG(Point Cloud PNG)とは,画像フォーマットPNG形式を利用してポイントデータのリストを扱うためのフォーマットです.
ここで扱うポイントデータは,2次元または3次元の位置座標を持つもので,それらに関連付けられる付加情報を含みます.
ファイルフォーマット
ファイルフォーマットはPNG(Portable Network Graphics, ISO/IEC 15948:2004)を使用し,タイプはカラーが利用できる以下のいずれかを使用します.
- 2: Truecolour
- 3: Indexed-colour
- 6: Truecolour with alpha
データ型
点群PNGではピクセルの色をデータに変換して使用します.仕様上定義されるデータ型には以下の4種類がありますが,ユーザ定義属性では任意のデータ型を使用できます.
- RGB
- 24ビット符号無し整数
- 48ビット符号無し整数
- 24ビット符号付き整数
RGBは,ピクセルをそのまま色として取得します
24ビット符号無し整数では,1ピクセルのRGB値(
r,
g,
b)から以下の式で値(
v)を取得します.
48ビット符号無し整数では,2つのピクセルのRGB値,第1ピクセル(
r1,
g1,
b1)及び第2ピクセル(
r2,
g2,
b2)から以下の式で値(
v)を取得します.
24ビット符号付き整数では,1ピクセルのRGB値(
r,
g,
b)から以下の式で値(
v)を取得します.
配置及びレコード長
画像は,ヘッダ情報及びポイント情報をそれぞれいくつかのピクセルの組み合わせで表現します.ヘッダー情報は省略できます.
ヘッダー情報のピクセル数は可変です.1ポイントのポイント情報を表現するピクセル数はファイル内で同一で,それをレコード長と呼びます.
ヘッダ情報及びポイント情報を表すピクセルは,画像の左上端から行優先で配置します.すなわち,まずは右方向へ配置していき,右端に達したら1行下の左端に移動し,これを繰り返します.通常,ヘッダー情報及びポイント情報は連続したピクセルになりますが,画像右端で折り返される場合は連続しません.ヘッダー情報はすべてのポイント情報よりも前に配置する必要があります.
画像サイズの幅は,レコード長の整数倍でなければなりません.
ヘッダー
タイプ,ヘッダー長,レコード長,レコード数,表示範囲の大きさを示します.
第1ピクセル | 第2ピクセル | 第3ピクセル |
第4ピクセル | 第5ピクセル | 第6ピクセル | 第7ピクセル |
---|
type | headerLength | recordLength |
recordCount | widht | height | ... |
それぞれの属性の名称,データ型,内容は以下の通りです.なお,ここでいう表示範囲とは,PNGが持つ本来のピクセルサイズではなく,点群データを表示するときの範囲です
属性名 | データ型 | 内容 |
type | 24ビット符号無し整数 | データのタイプ.2D点群/3D点群を識別するために使用します. 1: 2D点群 2: 3D点群 |
headerLength | 24ビット符号無し整数 | ヘッダー長(ピクセル数) |
recordLength | 24ビット符号無し整数 | レコード長(ピクセル数) |
recordCount | 48ビット符号無し整数 | レコード数 |
width | 24ビット符号無し整数 | 表示範囲横幅 |
height | 24ビット符号無し整数 | 表示範囲縦幅 |
第8ピクセル以降はユーザー定義属性で,使用方法は自由です.
ポイント情報
各ポイントの位置や色,ID,スタイルなどの情報を表現します.
第1ピクセル | 第2ピクセル | 第3ピクセル | 第4ピクセル |
第5ピクセル | 第6ピクセル | 第7ピクセル |
---|
x | y | z | color | id | class |
... |
タイプが2D点群(type=1)の場合は第3ピクセル(z)は省略されます.第4~第6ピクセルはそれぞれ省略可です.それらが省略された場合は残りのピクセルを左に詰めます.第7ピクセル以降はユーザ定義属性で,使用法は自由です.
それぞれの属性の名称,データ型,内容は以下の通りです.
属性名 | データ型 | 内容 |
x | 24ビット符号無し整数 | 表示範囲左端からの距離 |
y | 24ビット符号無し整数 | 表示範囲上端からの距離 |
z | 24ビット符号付き整数 | 高さ方向を表す数値 |
color | RGB | 表示する色 |
id | 24ビット符号無し整数 | ポイントを識別するID
|
class | 24ビット符号無し整数 | 表示ルを指定するクラス
|
データ範囲外
画像の末端部の配置するポイント情報が存在しないピクセルの内容は規定しません.