isl-org / Open3D

Open3D: A Modern Library for 3D Data Processing
http://www.open3d.org
Other
11.41k stars 2.3k forks source link

TSDF to Integrate pointclouds #570

Open martinakos opened 6 years ago

martinakos commented 6 years ago

Feature Request I'm filtering the pointclouds extracted from UniformTSDFVolume. Then I'd like to get a triangle mesh from the resulting filtered pointcloud. I think the triangle mesh from point cloud functionality is not available yet, but triangle mesh from TSDF is. So I thought I would create a new UniformTSDFVolume and integrate my filtered pointcloud into it, then extract the triangle mesh from the UniformTSDFVolume. However, at the moment UniformTSDFVolume can only integrate RGBD images not point clouds. I guess it wouldn't be too difficult to integrate a point cloud too? that would allow for point cloud preprocessing before integration.

qianyizh commented 6 years ago

I think there is a workaround: in the first pass, extract a point cloud and a triangle mesh from the same UniformTSDFVolume. Since both extraction uses the same algorithm under the hood, the extracted point cloud should be a superset (if not identical) of the triangle mesh's vertices. When you filter points from the point cloud, you filter them out in the triangle mesh's vertices too. Finally, use TriangleMesh.select_down_sample() to create the mesh.

martinakos commented 6 years ago

Thanks. that seems to work. Although for some reason the mesh doesn't look as good a the point cloud. I guess that in my mind I would triangulate the point cloud to look as good a possible, whereas the algorithm just joins the nearest points to make a triangle.

qianyizh commented 6 years ago

It is just standard marching cubes. So the point clouds are not smoothed and it is common to notice some artifacts. I think you can do post processing to further polish the mesh.

ozankabak commented 5 years ago

I also would like to know if it is possible to integrate point clouds. I see that ScalableTSDFVolume's integrate method only takes in RGBD images as its argument. Is there a workaround to feed point clouds?

qianyizh commented 5 years ago

Not for now. It is on our roadmap.

germanros1987 commented 4 years ago

Issue closed due to lack of activity. Feel free to open a new issue if you still consider this is a critical matter.

FreakTheMighty commented 1 year ago

We would also find this feature useful. Ideally we could filter our point cloud for outliers before integrating. Is there more work than providing an additional method that skips right to here. Just wanna know if there's more nuance to this, if not I suspect we could provide a pull request.

shariqfarooq123 commented 1 year ago

I am also interested in this. Can we use a point cloud or even an already existing mesh to initialize the ScalableTSDFVolume ? Are there any workarounds?