2021/2/8更新
点群PNG(Point Cloud PNG)とは,画像フォーマットPNG形式を利用してポイントデータのリストを扱うためのフォーマットです.
ここで扱うポイントデータは,2次元または3次元の位置座標を持つもので,それらに関連付けられる付加情報を含みます.
ファイルフォーマット
ファイルフォーマットはPNG(Portable Network Graphics, ISO/IEC 15948:2004)を使用し,PNGのカラータイプはカラーが利用できる以下のいずれかを使用します.
- 2: Truecolour
- 3: Indexed-colour
- 6: Truecolour with alpha
データ型
点群PNGではデータを1つまたは複数のピクセルに変換して保持します.仕様上定義されるデータ型には以下の4種類があるほか,ユーザー定義属性では任意のデータ型を使用できます.
- RGB (1ピクセル)
- 24ビット符号無し整数 (1ピクセル)
- 48ビット符号無し整数 (2ピクセル)
- 24ビット符号付き整数 (1ピクセル)
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)を取得します.
不透明度を使用する場合は255(最大)を指定することを推奨します.不透明度に0が指定された場合,そのピクセルを含むデータは無効値として扱います.
配置及びレコード長
データは画像内にラスタースキャン順で配置します.すなわち,画像の左上端からまず右方向へ配置し,右端に達したら1行下の左端に移動してまた右方向へ配置します.これを配置するデータが無くなるまで繰り返します.
配置するデータは,先頭の部のヘッダーと,それに続く0個以上のポイント情報からなります.ヘッダーのピクセル数は可変です.各ポイント情報のピクセル数はファイル内で同一で,それをレコード長と呼びます.
画像サイズの幅は,レコード長の整数倍でなければなりません.
ヘッダー
タイプ,ヘッダー長,レコード長,レコード数の大きさを示します.
第1ピクセル | 第2ピクセル | 第3ピクセル |
第4ピクセル | 第5ピクセル | 第6ピクセル |
---|
type | headerLength | recordLength |
recordCount | ... |
それぞれの属性の名称,データ型,内容は以下の通りです.
属性名 | データ型 | 内容 |
type | 24ビット符号無し整数 | データのタイプ.2D点群/3D点群を識別するために使用します. 1: 2D点群 2: 3D点群 |
headerLength | 24ビット符号無し整数 | ヘッダー長(ピクセル数) |
recordLength | 24ビット符号無し整数 | レコード長(ピクセル数) |
recordCount | 48ビット符号無し整数 | レコード数 |
第6ピクセル以降はユーザー定義属性で,使用方法は自由です.
ポイント情報
各ポイントの位置や色,ID,スタイルなどの情報を表現します.
第1ピクセル | 第2ピクセル | 第3ピクセル | 第4ピクセル |
第5ピクセル | 第6ピクセル | 第7ピクセル |
---|
x | y | z | color | id | class |
... |
タイプが2D点群(type=1)の場合は第3ピクセル(z)は省略されます.第4~第6ピクセルはそれぞれ省略可です.それらが省略された場合は残りのピクセルを左に詰めます.第7ピクセル以降はユーザー定義属性で,使用法は自由です.
それぞれの属性の名称,データ型,内容は以下の通りです.
属性名 | データ型 | 内容 |
x | 24ビット符号付き整数 | X座標値 |
y | 24ビット符号付き整数 | Y座標値 |
z | 24ビット符号付き整数 | Z座標値 |
color | RGB | 表示する色 |
id | 24ビット符号無し整数 | ポイントを識別するID
|
class | 24ビット符号無し整数 | 表示スタイルを指定するクラス
|
データ範囲外
画像の末端部の配置するポイント情報が存在しないピクセルの色は規定しません.