如何改变open3d中法线的方向

问题描述 投票:0回答:1

我正在尝试用open3d改变法线的方向,这是法线的当前情况: Failed normal orientation

我需要改变方向来重建脸部的表面。 如何改变正常方向?

python point-clouds open3d
1个回答
0
投票

您只需将点云传递给函数即可

orient_normals_consistent_tangent_plane()

该函数适用于张量形式的点云,因此请像这样导入云:

# Import point cloud
    pc_tensor = read_point_cloud("path/to/your/point/cloud.pcd")
# Estimate normals (we use 12 knn)
    pc_tensor.estimate_normals(12, None)
# Orient normals (it can take some time for 1 Milion points)
    pc_tensor.orient_normals_consistent_tangent_plane(k=12, lambda=10.0, cos = 0.5)

将参数传递给函数时,不要输入名称,只需输入值:

pc_tensor.orient_normals_consistent_tangent_plane(12, 10.0, 0.5)

传递给该函数的参数使法线的估计更加稳健。

k (int) – 用于正常传播的图重建的 k 最近邻。它必须等于用于估计法线的 knn 数量,否则该过程将花费更长的时间。

lambda (float) – 一个非负实参数,影响用于识别复杂几何中点的真实邻居的距离度量。它对点和由参考点及其法线向量定义的切平面之间的距离进行惩罚,有助于减轻传统欧几里德距离度量(建议值,lambda=10)遇到的错误分类问题。 image_lambda

cos_alpha_tol (float) – 余弦阈值角度,用于根据法向量的方向确定邻居的包含边界(建议值 = 0.5)。

image from cos_alpha

欲了解更多信息: https://www.open3d.org/docs/latest/python_api/open3d.t.geometry.PointCloud.html#open3d.t.geometry.PointCloud.orient_normals_consistent_tangent_plane

纸张: https://eugeniovaretti.github.io/meshreco/Piazza_Valentini_Varetti_MeshReconstructionFromPointCloud_2023.pdf

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.