本文为博主原创文章,未经博主允许不得转载。
本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。
法向量通常是针对于平面而言的,即垂直于平面的向量。因此,对于点云来说,需要先拟合出一个平面,然后才能求出相应的法向量。对于一个点,可以用周围邻近的点来拟合平面。
1 Open3d法向量计算方法
这里将采用Open3d来计算法向量,其对应的函数为estimate_normals。该函数的一个参数是搜索是定义平面的搜索参数。
如上文所述,计算法向量需要拟合出一个平面,这个平面有临近的点来决定。Open3d中提供三种方法来确定这些邻近的点。所有计算的法向量模长为1。
o3d.geometry.KDTreeSearchParamKNN(knn=20)# 计算近邻的20个点
o3d.geometry.KDTreeSearchParamRadius(radius=0.01)#计算指定半径内的点
o3d.geometry.KDTreeSearchParamHybrid(radius=0.01, max_nn=20)#同时考虑搜索半径和近邻点个数
2 python open3d 计算法向量
点云数据下载地址:ply格式点云样例文件-深度学习文档类资源-CSDN下载。