open3d获取点云法向量,并指定方向

编程入门 行业动态 更新时间:2024-10-28 06:26:57

官方文档:
官方文档

一 获取点云:
open3d支持ply等形式直接读取就可o3d.io.read_point_cloud,但是不支持.bin文件
所以可以numpy读取bin文件再转换成open3d的数据格式
转换的代码:

points = np.random.uniform(-1, 1, (10000, 3))

pointcloud = o3d.geometry.PointCloud()
pointcloud.points = o3d.utility.Vector3dVector(points)

这里,pointcloud就是 open3d对象了,想要获取数据,不可以直接获取,需要转回numpy,–numpy.asarray().


API:
(1)orient_normals_towards_camera_location(self, camera_location=array([0.0, 0.0, 0.0])) 需要在获取的法向量后面指定
(2)orient_normals_to_align_with_direction(self, orientation_reference=array([0.0, 0.0, 1.0])), 需要在获取的法向量后面指定注意顺序。
(3)法向量估计: pointcloud.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30))

案例:

points = np.random.uniform(-1, 1, (10000, 3))

pointcloud = o3d.geometry.PointCloud()
pointcloud.points = o3d.utility.Vector3dVector(points)

o3d.geometry.estimate_normals(
    pointcloud,
    search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=1.0, max_nn=30)
)
o3d.geometry.orient_normals_towards_camera_location(pointcloud, camera_location=array([0.0, 0.0, 0.0]))

更多推荐

open3d获取点云法向量,并指定方向

本文发布于:2023-06-14 05:54:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1445010.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:向量   方向   open3d   点云法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!