You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a point cloud from a simulated cube, which is perfectly flat. I want to use the function detect_planar_patches to find the faces of the cube from the point cloud. Unfortunately the returned patches are wrong, I only get two small patches on one of the faces. The interesting part is that, if I add small random noise to the point cloud, the returned patches are correct again! You can download the ply file to reproduce the issue here: cube_pcd.ply
See the images:
Default pcd:
Noisy pcd:
Steps to reproduce the bug
importnumpyasnpimportopen3daso3dcube_pcd=o3d.io.read_point_cloud("cube_pcd.ply")
patches=cube_pcd.detect_planar_patches()
o3d.visualization.draw_geometries([cube_pcd] +patches)
# Create a new PointCloud with noisy pointscube_points=np.array(cube_pcd.points)
noisy_points=cube_points+np.random.normal(0, 0.001, size=cube_points.shape)
noisy_pcd=o3d.geometry.PointCloud(o3d.utility.Vector3dVector(noisy_points))
noisy_pcd.estimate_normals()
noisy_pcd.orient_normals_towards_camera_location()
new_patches=noisy_pcd.detect_planar_patches()
o3d.visualization.draw_geometries([noisy_pcd] +new_patches)
Error message
No response
Expected behavior
No response
Open3D, Python and System information
- Operating system: Ubuntu 20.04
- Python version: Python 3.9
- Open3D version: tried both latest and 0.17.0
- System architecture: x86
- Is this a remote workstation?: no
- How did you install Open3D?: pip inside a conda env
Additional information
No response
The text was updated successfully, but these errors were encountered:
…oise-free planes (issue #6550) (#6608)
The coplanar patches for noise-free plane are not merged. The reason is normal deviation diff threshold is 1, and the dot product of direction normal (plane patches) would be too. So the robust planar test will fail on this.
And also the box size need to be larger than zero, but for ideal points, it maybe calculated to zero. So we need to set a tolerance on this too.
Checklist
main
branch).Describe the issue
I have a point cloud from a simulated cube, which is perfectly flat. I want to use the function
detect_planar_patches
to find the faces of the cube from the point cloud. Unfortunately the returned patches are wrong, I only get two small patches on one of the faces. The interesting part is that, if I add small random noise to the point cloud, the returned patches are correct again! You can download the ply file to reproduce the issue here: cube_pcd.plySee the images:
Default pcd:
Noisy pcd:
Steps to reproduce the bug
Error message
No response
Expected behavior
No response
Open3D, Python and System information
Additional information
No response
The text was updated successfully, but these errors were encountered: