Downloads
3D Zernike Descriptors
This is the C++ code used to generate the results of our
paper on shape retrieval using these descriptors.
The package includes source files implementing the 3D Zernike Descriptors as
described in the referred papers. I tried to include some comments that might be
useful for a potential user or even somebody venturing to extend/improve the functionality.
I provide a doxygen html-based documentation in the archives that can be downloaded, in the
hope that it helps. Should you have questions concerning the code, or comments, etc., don't
hesitate to write me.
The main.cpp file may be a good starting point as an example of how to use the classes.
- Portability: The code has been tested on various
compilers including Microsoft C++ .NET 2002, Intel C++ Compiler 7.0 (Windows
version) and GCC 3.2; I tried to keep the code as platform independent as
possible, so it should compile without problems under most of recent C++ compilers.
- Compiling: The rule of the thumb is: compile only the main.cpp in the distribution
as all the classes are templates. If you want to use the Zernike Moments or Descriptors in your
own program, just include the appropriate header files and do not compile the .cpp's.
- Functionality: The input of the program is
- File name corresponding to a binary volumetric representation of a 3D object. In the
present implementation the voxel grid must be cubic, as it fully suited the needs, however
the extension to arbitrary grid dimensions is pretty straightforward.
- Maximal order of the 3D Zernike Moments to be computed. This essentially determines how
much details are incorporated into the representation. See the
paper to get more
information on this number.
As it can be seen, the package does not include code for voxelizing the objects. We used the
code of Milos Sramek for this purpose.
- Caveat emptor: The code has been thouroughly tested, however, remember that this is research
code and it has not been hardened.
- Download: zip or tgz