#include <mdsTriMesh.h>
Inheritance diagram for mds::seg::CTriMesh:
Public Types | |
typedef std::vector< CTriFeatures > | tSegments |
Vector of image features. | |
typedef mds::base::CSharedPtr< CTriMesh > | tSmartPtr |
Smart pointer type. | |
Public Member Functions | |
bool | classifyAdjacent (double dBThreshold=DEFAULT_DISTANCE_THRESHOLD) |
Classify all non-classified triangles with respect to the neighbours. | |
CTriMesh (mds::img::CDImage *pEdgeImage) | |
Constructor. | |
CTriMesh () | |
Default constructor. | |
template<class S> | |
void | deserialize (mds::mod::CChannelSerializer< S > &Reader) |
Deserializes the triangular mesh. | |
bool | edgeSplitting (double dMinLength=DEFAULT_MIN_EDGE_LENGTH, double dOrientThreshold=DEFAULT_SPLITTING_THRESHOLD) |
Adaptation of the triangular mesh to the underlying image. | |
bool | evaluateFeatures (bool bSkipSmall=true) |
Evaluates image features of all triangles in the mesh. | |
bool | evaluateSegmentFeatures (bool bSkipSmall=true) |
Evaluates features of all segments in the mesh. | |
mds::img::CDImage * | getEdgeImagePtr () |
Returns pointer to the underlying edge image. | |
mds::img::CDImage * | getImagePtr () |
Returns pointer to the underlying image. | |
int | getNumOfSegments () const |
Returns number of regions. | |
tSegments & | getSegments () |
Returns vector of image features. | |
bool | init (double dThreshold=DEFAULT_INIT_THRESHOLD, tSize CellSize=DEFAULT_CELL, tSize NumOfNodes=DEFAULT_NUMBER_OF_NODES, double dMinEdgeLength=DEFAULT_MIN_EDGE_LENGTH) |
Initializes the Delaunay triangulation. | |
MDS_ENTITY_BLOCK_SIZE (4096) | |
Standard method getEntityBlockSize(). | |
MDS_ENTITY_COMPRESSION (mds::mod::CC_RAW) | |
Standard method getEntityCompression(). | |
MDS_ENTITY_NAME ("TriMesh") | |
Standard method getEntityName(). | |
bool | noiseReduction () |
Removes noisy (wrongly classified) tetrahedrons in the mesh. | |
bool | regionGrowing (CTriSimilarityMeasure &Measure, double dBThreshold=DEFAULT_DISTANCE_THRESHOLD) |
Simple region growing segmentation. | |
bool | regionMerging (CTriSimilarityMeasure &Measure, double dBThreshold=DEFAULT_DISTANCE_THRESHOLD, tSize NumOfRegions=-1) |
Aglomerative merging of regions in the mesh. | |
bool | saveSTL (mds::mod::CChannel &Channel) |
Writes triangular mesh to a given output channel in STL format. | |
bool | saveVRML (mds::mod::CChannel &Channel) |
Writes triangular mesh to a given output channel in VRML format. | |
template<class S> | |
void | serialize (mds::mod::CChannelSerializer< S > &Writer) |
Serializes the triangular mesh. | |
void | setEdgeImage (mds::img::CDImage *pEdgeImage) |
Selection of the image for segmentation. | |
void | setImage (mds::img::CDImage *pImage) |
Selection of the image for segmentation. | |
void | setNumOfSegments (int i) |
Sets the number of regions. | |
bool | triangleSplitting (CTriHomogeneityMeasure &Measure, double dMinLength=DEFAULT_MIN_EDGE_LENGTH) |
Adaptation of the triangular mesh to the underlying image. | |
void | visualize (mds::img::CDImage *pImage) |
Visualizes the triangular mesh. | |
virtual | ~CTriMesh () |
Virtual destructor. | |
Static Public Attributes | |
static const tSize | DEFAULT_CELL = 5 |
Default parameters. | |
static const tSize | DEFAULT_CELL_MARGIN = 1 |
static const double | DEFAULT_DISTANCE_THRESHOLD = 1.5 |
static const double | DEFAULT_INIT_THRESHOLD = 0.5 |
static const double | DEFAULT_SPLITTING_THRESHOLD = 0.5 |
Protected Types | |
typedef std::vector< vctl::MCPoint3D > | tPoints |
Vector of points. | |
Protected Member Functions | |
bool | checkBoundaryEdge (vctl::MCEdge *pEdge, double dThreshold=DEFAULT_DISTANCE_THRESHOLD) |
Checks if a given edge is a boundary edge. | |
void | reassignRegions () |
Eliminates unused indexes of regions shaking down all currently assigned indexes. | |
bool | splitEdge (vctl::MCEdge *pEdge, double dMinLength, double dThreshold, tPoints &Points) |
Splits a given edge. | |
bool | splitTriangle (vctl::MCTri *pTriangle, double dMinLength) |
Splits a given triangle. | |
Static Protected Member Functions | |
static void | edgeSplittingInsertFunc (vctl::MCTri *pTriangle, CDelaunayTri *pMesh) |
Inserts triangle edges to the list of edges. | |
static void | triangleSplittingInsertFunc (vctl::MCTri *pTriangle, CDelaunayTri *pMesh) |
Evaluates triangle homogeneity and inserts it to the sorted queue. | |
static void | triangleSplittingRemoveFunc (vctl::MCTri *pTriangle, CDelaunayTri *pMesh) |
Unsorts triangle from the queue. | |
Protected Attributes | |
int | m_iNumOfSegments |
Number of segments in the mesh. | |
CTriHomogeneityMeasure * | m_pHomogeneityMeasure |
Currently used homogeneity measure. | |
tSegments | m_Segments |
Vector of image features extracted for every region. | |
mds::img::CDImagePtr | m_spEdgeImage |
Pointer to the underlying edge image. | |
mds::img::CDImagePtr | m_spImage |
Pointer to the underlying image. | |
Friends | |
class | mds::base::CSharedPtr< CTriMesh > |
|
Vector of points.
|
|
Vector of image features.
|
|
Smart pointer type.
Reimplemented from mds::seg::CDelaunayTri. |
|
Default constructor.
|
|
Constructor.
|
|
Virtual destructor.
|
|
Checks if a given edge is a boundary edge.
|
|
Classify all non-classified triangles with respect to the neighbours.
|
|
Deserializes the triangular mesh.
Reimplemented from mds::seg::CDelaunayTri. |
|
Adaptation of the triangular mesh to the underlying image.
|
|
Inserts triangle edges to the list of edges.
|
|
Evaluates image features of all triangles in the mesh.
|
|
Evaluates features of all segments in the mesh.
|
|
Returns pointer to the underlying edge image.
|
|
Returns pointer to the underlying image.
|
|
Returns number of regions.
|
|
Returns vector of image features.
|
|
Initializes the Delaunay triangulation.
|
|
Standard method getEntityBlockSize().
Reimplemented from mds::seg::CDelaunayTri. |
|
Standard method getEntityCompression().
Reimplemented from mds::seg::CDelaunayTri. |
|
Standard method getEntityName().
|
|
Removes noisy (wrongly classified) tetrahedrons in the mesh.
|
|
Eliminates unused indexes of regions shaking down all currently assigned indexes.
|
|
Simple region growing segmentation. Every region grows while a given similarity predicate holds and boundary edge is not touched.
|
|
Aglomerative merging of regions in the mesh.
|
|
Writes triangular mesh to a given output channel in STL format.
|
|
Writes triangular mesh to a given output channel in VRML format.
|
|
Serializes the triangular mesh.
Reimplemented from mds::seg::CDelaunayTri. |
|
Selection of the image for segmentation.
|
|
Selection of the image for segmentation.
|
|
Sets the number of regions.
|
|
Splits a given edge.
|
|
Splits a given triangle.
|
|
Adaptation of the triangular mesh to the underlying image.
|
|
Evaluates triangle homogeneity and inserts it to the sorted queue.
|
|
Unsorts triangle from the queue.
|
|
Visualizes the triangular mesh.
|
|
|
|
Default parameters.
|
|
|
|
|
|
|
|
|
|
Number of segments in the mesh.
|
|
Currently used homogeneity measure.
|
|
Vector of image features extracted for every region.
|
|
Pointer to the underlying edge image.
|
|
Pointer to the underlying image.
|