We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
It appears the EstimateNormals function does not work properly for completely flat patches, also somehow depending on the orientation.
EstimateNormals
To reproduce:
import numpy as np import open3d X,Y = np.mgrid[0:1:0.1,0:1:0.1] X = X.flatten() Y = Y.flatten() pts = np.zeros((3, X.size)) pts[0] = X pts[1] = Y shape = open3d.PointCloud() shape.points = open3d.Vector3dVector(pts.T) shape.paint_uniform_color([0, 0.651, 0.929]) # blue open3d.estimate_normals(shape, open3d.KDTreeSearchParamHybrid(radius = 0.5, max_nn = 30)) # show the shape open3d.draw_geometries([shape])
If you write
pts[1] = X pts[2] = Y
instead - it works as expected; if you use 0 and 1 or 0 and 2 as indices - it no longer works.
Expected: Got:
Environment (please complete the following information):
The text was updated successfully, but these errors were encountered:
Good catch. Looks like a numerical issue of this function: https://github.com/IntelVCL/Open3D/blob/377fc7d6a47ea47681c25a1e07a5383d62a612aa/src/Open3D/Geometry/EstimateNormals.cpp#L40
I will dig into it when I got time.
Sorry, something went wrong.
Fun fact: adding minimal noise to the points fixes the problem.
Fixed in #1011
No branches or pull requests
It appears the
EstimateNormals
function does not work properly for completely flat patches, also somehow depending on the orientation.To reproduce:
If you write
instead - it works as expected; if you use 0 and 1 or 0 and 2 as indices - it no longer works.
Expected:
Got:
Environment (please complete the following information):
The text was updated successfully, but these errors were encountered: