簡體   English   中英

將點雲從 .txt 轉換為 .ply

[英]Convert a pointcloud from .txt to .ply

我是 Pointcloud (LiDAR) 處理的新手,我想知道是否有任何工具/庫能夠將保存在 .txt 中的點雲轉換為 .ply 文件。

pointcloud.txt 看起來像這樣

pointcloud_width pointcloud_height
point1_x point1_y point1_z point1_intensity
point2_x point2_y point2_z point2_intensity
...
pointN_x pointN_y pointN_z pointN_intensity

謝謝你的幫助

您可以為此使用Open3d

import open3d as o3d

pcd = o3d.io.read_point_cloud("input.txt", format="xyz")
o3d.io.write_point_cloud("output.ply", pcd)

但是,這不會保留強度值。 如果您需要它們,請使用open3d.t

pcd = o3d.t.io.read_point_cloud("input.txt", format="xyzi")
o3d.t.io.write_point_cloud("output.ply", pcd)

請注意,PLY 有兩種形式:ASCII 和二進制 上面的解決方案為您提供了一個二進制文件,這是 open3d 的默認設置。 如果你真的需要 ASCII 然后使用這個:

o3d.t.io.write_point_cloud("output.ply", pcd, write_ascii=True)

或者,由於 ASCII 基本上是純文本,您可以在沒有任何外部庫的情況下執行此操作,只需將 your.txt 文件的第一行替換為自定義 header 即可,如下所示:

ply
format ascii 1.0
element vertex {insert number of points here}
property float x
property float y
property float z
property float scalar_Intensity
end_header
point1_x point1_y point1_z point1_intensity
point2_x point2_y point2_z point2_intensity
...
pointN_x pointN_y pointN_z pointN_intensity

並使用 a.ply 擴展名保存它。

最后,如果您只需要一個“工具”,那么請查看CloudCompare ,它可以處理許多文件格式轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM