-
Notifications
You must be signed in to change notification settings - Fork 219
New issue
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
wrong demo result #24
Comments
I also have the same problem, even with 1 img of the sample dataset : |
I am facing the same issue. |
@shubhMaheshwari , no I was not able to fix that pb, I didn't look further neither. The problem might comes from skimage which changed its implementation. Anyways, thank you for the alternative |
So I found out why it's happening. The tsdf is initialized as 1. Due to truncation, the tsdf crosses 0 twice. One near the surface, and another from -1 to 1 at the end. eg. [1.0,0.5,0.0,-0.5,-0.9,1.0]. This leads to the 2 surfaces. A simple workaround is to pass a mask for the skimage marching cube algorithm. so update:
and fusion.py#L328
|
thanks @shubhMaheshwari it removes part of the "double" mesh in my case using 0.5 instead of 0.8. By the way fusion.py#L328 should not end by |
Yes, their implementation of mask for marching cubes is not in-line with our usage. Basically in skimage they check if the mask is true, then they would run marching cubes on that voxel. Eg. If mask for X=Y=Z=0 is true. It would run marching cubes on voxel corresponding to it. Instead it should have checked if mask for all X=Y=Z={-1,0,1} is true. The mask for the voxel and it's neighbouring voxels. Only if the the mask of all of them are true. Run marching cubes. |
There is double sided effect in the extracted mesh as well as point cloud in the demo code. The other side is not correct, how can this be fixed? Thank you.
The text was updated successfully, but these errors were encountered: