The Shape-Diameter Function (SDF) is a scalar function defined on the mesh surface. It expresses a measure of the diameter of the object’s volume in the neighborhood of each point on the surface. Using the SDF we have been able to segment 3D models, find skeletons for deformations and other applications, and perform part-retrieval (see bibliography).
The original SDF source code and application isn’t readily available anymore. SDF Has been implemented in CGAL, I suggest you start there…
- Contextual Part Analogies in 3D Objects / Lior Shapira, Shy Shalom, Ariel Shamir, Richard H. Zhang, Daniel Cohen-Or, International Journal of Computer Vision (IJCV).
- Part Analogies in Sets of Objects / Shy Shalom, Lior Shapira, Ariel Shamir, Daniel Cohen-Or. Eurographics Workshop on 3D Object Retrieval ‘08
- Consistent Mesh Partitioning and Skeletonization Using the Shape Diameter Function / Lior Shapira, Ariel Shamir, Daniel Cohen-Or, The Visual Computer, Special IK Issue (Vol. 24 #4 April 2008)
- Pose oblivious Shape Signature / Ran Gal, Ariel Shamir, Daniel Cohen-Or, IEEE Transactions on Visualization and Computer Graphics 2007.
SDF Source code download (mini application)
Was also implemented as a filter in MeshLab – http://sourceforge.net/projects/meshlab/
SDF Application download
Instructions for downloading and running the demo application:
- Download the binary package: SDF_bin_pack4.rar
- Unrar it to its own directory.
- Download the visual studio sp1 runtime: http://www.shiny.co.il/shooshx/vcredist_vc2005_x86_sp1.exe and install it.
- Download the application configuration: http://www.shiny.co.il/shooshx/sdf_src/SDF_conf5.zip. This is a registry file. Import it to your registry by double-clicking.
- The application exe is called ‘sdf_bucket.exe’
Usage of the application is very simple
- Open a model file (.off, .obj, .ply2) using “File->Open” or the sidebar file explorer
- Calculate the SDF using the menu options “Tools->Calculate SDF Facets”
- You can view the SDF values of the model by pressing “3” (the number keys switch between different coloring views of the model)
- To segment the model press the “Partition Mesh” button: on the toolbar
- to view the partitioning press “2”
- You can tweak the partition parameters buy using the dialog box which opens when you select “Tools->Partition Parameters”
- To save the partition, go to “File->Save mesh features” and in the dialog choose “OBJ with partition facets”