计算点云每个点的高斯曲率(附open3d python代码)

过找到最佳拟合曲面的方程开始查找点的高斯曲率
方程由周围的点创建,格式为:
a*x**2+b*y**2+c*z**2+d*x*y+e*y*z+f*x*z+g*x+h*y+i*z+j=0
其中(a,b,c,d,e,f,g,h,i,j)是常数。
接下来,距离当前感兴趣点最近的点找到最佳拟合曲面上的点。然后
程序找到方程关于x、y和z的一阶和二阶偏导数
方程的梯度。最近点的坐标用于本表中x、y和z的值计算,
然后程序使用以下公式计算高斯曲率:
E=1+(Fx**2/Fz**2)
F=Fx*Fy/Fz**2
G=1+(Fy**2/Fz**2)
L=(1/(Fz**2*grad_F))*det(([Fxx,Fxz,Fx],[Fxz,Fzz,Fz],[Fx,Fz,0]))
M=(1/(Fz**2*grad_F))*det(([Fxy,Fyz,Fy],[Fxz,Fzz,Fz],[Fx,Fz,0]))
N=(1/(Fz**2*grad_F))*det(([Fyy,Fyz,Fy],[Fyz,Fzz,Fz],[Fy,Fz,0]&

你可能感兴趣的:(点云处理代码合集,python,算法)