mkazhdan / ShapeSPH

Shape Spherical Harmonics (Descriptors, Alignment, and Symmetry)
MIT License
73 stars 25 forks source link

Reconstruct 3D image #4

Open tanquer opened 5 years ago

tanquer commented 5 years ago

Can I use these descriptors to reconstruct to 3D image? How to do that?

mkazhdan commented 5 years ago

You would like to get a voxel grid?

tanquer commented 5 years ago

Yes, I want to get the voxel grid from descriptors.

mkazhdan commented 5 years ago

So you can't get the voxel grid from the descriptor (as the process making the descriptor rotationally-invariant loses information). However, if you're interested in getting the voxel grid used to generate the shape descriptors, that is possible.

For example, in the file ShapeDescriptor.cpp, the voxel grid is available within the CubeGrid object "gedt" after line 107. (The command "GaussianEDT" computes the Gaussian Euclidean Distance Trasnform, gedt, from the rasterization of the triangle mesh, grid.)

tanquer commented 5 years ago

Thank you very much! So do you know any possible 3D descriptor which not only can describe the shape of 3D image but also can reconstruct to the voxel grid? I have found the 3D Zernike descriptor (http://cg.cs.uni-bonn.de/project-pages/3dsearch/downloads.html) which can do that, but it seems that their code didn't work correctly and I don't know how they voxelize the object.

mkazhdan commented 5 years ago

Is there a reason not to use the voxel grid directly as the descriptors? I understand that it's not rotation-invariant, but rotation-invariance tends to come with a loss of information (even if you're using Zernike moments).

tanquer commented 5 years ago

Well, my purpose is to use some parameters to describe the shape of some images and try to find the distribution of these parameters for future imitated generating. In 2D image, we can easily use Fourier descriptor but in 3D image, it seems be much more difficult.

tanquer commented 5 years ago

The problem that I can't just use the voxel grid is that, if we generate every voxel by the probability, we can not promise the boundary of the final object is continuous. Maybe it will be the scattered point map. What's more, I think rotation-invariance is not important for my purpose, so if I do not need this function, can I reach my point?

tanquer commented 5 years ago

I know that nowadays, many new techs such as 3D GAN can do it directly, but I don't think we have enough 3D images for training this project.