EfPiSoft provides an interactive GUI for the inspection and segmentation of 3D surface meshes. After loading a mesh, a
hierarchical mesh segmentation algorithm may be launched.
Broadly speaking, this algorithm strives to cluster the faces of the mesh so that clusters can be effectively approximated by one of the fitting primitives employed. The user may choose which primitives to use (in the current version these are planes, spheres and cylinders).
The clustering is hierarchical and proceeds in a bottom-up manner, which means that initially each face of the mesh represents a cluster.
At each iteration, all the pairs of adjacent clusters are considered.
For each such pair, the algorithm computes the parameters of the geometric primitive that best approximates the faces of the two clusters.
Among all the pairs considered, the one that can be best approximated is actually contracted into a single new cluster.
The iteration proceeds until only one big cluster representing the whole object remains.
The resulting binary tree of clusters may be browsed interactively by acting on a slider controlling the number of clusters; different clusters are depicted using different colors.
The program is written in C++ and makes use of the JMeshLib API (
http://jmeshlib.sourceforge.net) to represent the polygon mesh internally.
The following file formats can be read by EfPiSoft:
OFF,
PLY,
STL,
VER-TRI (proprietary format used at IMATI-GE / CNR)
and partially:
VRML 1.0,
VRML 97,
OBJ,
IV 2.1
Go to
JMeshLib's page for details on partially supported formats.
Documentation
The segmentation algorithm implemented in EfPiSoft was firstly introduced in the following paper:
Marco Attene, Michela Spagnuolo and Bianca Falcidieno
“
Hierarchical Mesh Segmentation based on Fitting Primitives"
The Visual Computer, 22(3): 181-193, 2006.
EfPiSoft is citeware, which means that if you use it
for your research projects, you should acknowledge it and cite
the paper.
System Requirements
Windows binaries:
I run it successfully on MS Windows 2000 Pro, XP Home, XP Pro.
I never tried it on any other version of Windows.
If your system does not include a recent development
environment, you may need to download and install
Microsoft Visual C++ 2005 Redistributable Package (x86).
Linux binaries:
I run it successfully on Fedora Core 3, 4 and 5.
If your system complains that libstdc++.so.6 cannot be found,
you may try to add EfPiSoft's path (i.e., the directory
containing the 'efpisoft_linux' executable) to your
LD_LIBRARY_PATH environment variable.
Source Code: Look at the
README file for deatils.
Download
Click
here to get the latest version
of EfPiSoft from sourceforge.net.
Copyright
EfPiSoft is
Copyright(C) 2006: IMATI-GE / CNR
All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License (
http://www.gnu.org/licenses/gpl.txt)
for more details.