[英]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.