Я пытаюсь вычислить нормали облака точек, образованного тремя плоскостями, каждая из которых выровнена по оси.
В matlab функция pcnormals дает мне связный результат, в то время как когда я пытаюсь сделать то же самое с эстимейлом_представления open3d, результат неверен.
Код здесь:
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:
![enter image description here](https://i.stack.imgur.com/UflxS.png)
Результат Python:
![enter image description here](https://i.stack.imgur.com/pVvKY.png)
Кто-нибудь знает, с чем это может быть связано?