首页 > 解决方案 > open3d 的估计法线不正确?

问题描述

我正在尝试计算由三个平面形成的点云的法线,每个平面都与轴对齐。在 matlab 中,函数 pcnormals 给了我一个连贯的结果,而当我尝试对 open3d 的estimate_normals 做同样的事情时,结果是不正确的。代码在这里:

import numpy as np
from open3d import *
pcd = read_point_cloud("D:\Artificial.txt",format = 'xyz')
estimate_normals(pcd, search_param =  KDTreeSearchParamKNN(knn = 25))
x = np.concatenate((np.asarray(pcd.points),np.asarray(pcd.normals)),axis=1)
np.savetxt("D:\ArtificialN_python.txt",x,delimiter=',') 

我也尝试过不同的 knn 值和 search_param,但结果是相似的。

我根据使用 matlab 和 python 计算的正常云的第三分量(红色水平和绿色倾斜)附上彩色云的图像。

matlab结果:

在此处输入图像描述

蟒蛇结果:

在此处输入图像描述

有人知道这可能是什么原因吗?

标签: pythonmatlabpoint-clouds

解决方案


推荐阅读