天天看點

PLY檔案存儲格式

PLY檔案存儲格式

    • 檔案構成
    • 參考資料

檔案構成

    每個PLY檔都包含檔頭(header),用以設定網格模型的“元素”與“屬性”,以及在檔頭下方接着一連串的元素“數值資料”。一般而言,網格模型的“元素”就是頂點(vertices)、面(faces),另外還可能包含有邊(edges)、深度圖樣本(samples of range maps)與三角帶(triangle strips)等元素。無論是純文字與二進制碼的PLY檔,檔頭資訊都是以ASCII編碼編寫,接續其後的數值資料才有編碼(ASCII或Binary)之分。

PLY檔案以此行:

ply
           

開頭作為PLY格式的識别。接着第二行是版本資訊,目前有三種寫法:

format ascii 1.0
format binary_little_endian 1.0
format binary_big_endian 1.0
           

其中ascii, binary_little_endian, binary_big_endian是檔案儲存的編碼方式,分别是ASCII格式和binary格式,而1.0是遵循的标準版本(現階段僅有PLY 1.0版)。

在檔頭中可使用’comment’作為一行的開頭以編寫注解,例如:

comment PCL generated
           

标注着這個PLY檔案是由PCL檔案生成的。

描述元素及屬性,必須使用’element’及’property’的關鍵字,一般的格式為element下方接着屬性清單,例如:

element vertex 3
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
           

'property’不僅定義了資料的型态,其出現順序亦定義了資料的順序。内定的資料形态有兩種寫法:一種是char uchar short ushort int uint float double,另外一種是具有位元長度的int8 uint8 int16 uint16 int32 uint32 float32 float64:

PLY檔案存儲格式

例如,描述一個包含12個頂點的物體,每個頂點使用3個單精度浮點數 (x,y,z)代表點的座标,使用3個unsigned char代表頂點顔色,顔色順序為 (B, G, R),則檔頭的寫法為:

element vertex 12
property float x
property float y
property float z
property uchar blue
property uchar green
property uchar red
           

其中vertex是内定的元素類型,接續的6行property描述構成vertex元素的數值字段順序代表的意義,及其資料形态。

最後,标頭必須以此行結尾:

end_header
           

檔頭後接着的是元素資料(端點座标、拓樸連結等)。在ASCII格式中各個端點與面的資訊都是以獨立的一行描述,而二進制編碼格式則連續儲存這些資料(無空格換行等等),加載時須以’element’定義的元素數目以及’property’中設定的資料形态計算各筆字段的長度。

參考資料

PLY格式介紹

PLY格式檔案詳解

繼續閱讀