提取pcd格式文件中的位置、顏色、法向量信息(python+open3d)

首先了解一下什么是PCD格式的文件,PCD(Point Cloud Data) 文件是 PCL(Point Cloud Library) 引入的一種新的描述點(diǎn)云的格式。讓我詳細(xì)介紹一下 PCD 文件的結(jié)構(gòu)和內(nèi)容。

(1)文件頭部:

  • 每個 PCD 文件都包含一個文件頭,用于標(biāo)識并聲明存儲在文件中的點(diǎn)云數(shù)據(jù)的一些特性。
  • PCD 文件頭必須以 ASCII 編碼表示。
  • 文件頭的每個字段以及 ASCII 點(diǎn)數(shù)據(jù)都使用 新行(\n) 分隔。

(2)PCD 文件頭的字段:

下面是 PCD 文件頭的一些字段,按照指定的順序精確指定:

  • VERSION:指定 PCD 文件版本,目前 PCL 支持的版本為 0.7。
  • FIELDS:指定點(diǎn)具有的維度或字段的名稱,例如 x、y、z 坐標(biāo)、法線、顏色等。
  • SIZE:指定每個維度的大小(以字節(jié)為單位)。
  • TYPE:將每個維度的類型指定為一個字符,例如 F(浮點(diǎn)型)、U(無符號整型)等。
  • COUNT:指定每個維度有多少個元素,通常為 1。
  • WIDTH:以點(diǎn)數(shù)為單位指定點(diǎn)云的寬度,即點(diǎn)的數(shù)量。
  • HEIGHT:有組織的點(diǎn)云數(shù)據(jù)集的高度,即掃描線數(shù)。
  • VIEWPOINT:為數(shù)據(jù)集中的點(diǎn)指定采集視點(diǎn),用于構(gòu)建不同坐標(biāo)系之間的變換或處理需要一致方向的特征,如曲面法線。
  • POINTS:指定云中的點(diǎn)總數(shù)。
  • DATA:指定存儲點(diǎn)云數(shù)據(jù)的數(shù)據(jù)類型,支持三種類型:ascii、binary 和 binary_compressed。

(3)優(yōu)勢:

  • PCD 文件格式相對于其他文件格式的優(yōu)勢包括:
  • 存儲和處理有組織的點(diǎn)云數(shù)據(jù)集的能力,對于實(shí)時(shí)應(yīng)用和增強(qiáng)現(xiàn)實(shí)、機(jī)器人等研究領(lǐng)域至關(guān)重要。
  • 二進(jìn)制/數(shù)據(jù)類型是將數(shù)據(jù)加載和保存到磁盤的最快方法。
  • 存儲不同的數(shù)據(jù)類型允許點(diǎn)云數(shù)據(jù)在存儲和處理方面靈活高效。
  • 特征描述符的 n-D 直方圖對于 3D 感知/計(jì)算機(jī)視覺應(yīng)用非常重要。

(4)代碼示例

import open3d as o3d

# 提取三維模型的信息
def extract_info_to_nparray(pcd):
    data = {}
    data["points"] = np.asarray(pcd.points) 
    data["colors"] = np.asarray(pcd.colors) 
    data["normals"] = np.asarray(pcd.normals) 
    return data 

if __name__ =="__main__":
    # demo_icp_pcds = o3d.data.DemoICPPointClouds()
    # source = o3d.t.io.read_point_cloud(demo_icp_pcds.paths[0])
    # target = o3d.t.io.read_point_cloud(demo_icp_pcds.paths[1])

    source = o3d.io.read_point_cloud("./data/output.pcd")
    target = o3d.io.read_point_cloud("./data/cloud_bin_1.pcd")

    print(extract_info_to_nparray(target))

官網(wǎng)關(guān)于點(diǎn)云類型的數(shù)據(jù)的API:https://www.open3d.org/docs/release/python_api/open3d.geometry.PointCloud.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容