MeVisLab Toolbox Reference
ml::IdenticalIntensitiesClusterAlgorithm< DATATYPE > Class Template Reference

#include <mlIdenticalIntensitiesClusterAlgorithm.h>

Inheritance diagram for ml::IdenticalIntensitiesClusterAlgorithm< DATATYPE >:
ml::ClusterAlgorithm< DATATYPE, IdenticalIntensitiesClusterAlgorithm< DATATYPE > > ml::ClusterAlgorithmBase

Public Member Functions

 IdenticalIntensitiesClusterAlgorithm (const ComputeClusterParameters &parameters, Clusters *clusters)
ML_FORCE_INLINE bool isInTolerance (DATATYPE neighborValue, DATATYPE currentValue)
Public Member Functions inherited from ml::ClusterAlgorithm< DATATYPE, IdenticalIntensitiesClusterAlgorithm< DATATYPE > >
 ClusterAlgorithm (const ComputeClusterParameters &parameters, Clusters *clusters)
 Constructor to be used.
MLErrorCode runClustering ()
MLErrorCode processSlice (MLint zi, const ImageVector &inputImageExtent, TSubImage< MLint8 > &inMaskSlice)
Public Member Functions inherited from ml::ClusterAlgorithmBase
 ClusterAlgorithmBase (const ComputeClusterParameters &parameters, Clusters *clusters)
 Constructor to be used.
virtual ~ClusterAlgorithmBase ()
 Default virtual destructor.
bool hasResults () const

Static Public Member Functions

static ML_FORCE_INLINE DATATYPE getVoxel (void *position)
 Get the typed voxel value for current position.
static ML_FORCE_INLINE MLdouble getVoxelAsDouble (void *position)

Additional Inherited Members

Public Types inherited from ml::ClusterAlgorithm< DATATYPE, IdenticalIntensitiesClusterAlgorithm< DATATYPE > >
typedef DATATYPE ClusterVoxelType
 The used type of the voxels, needed by derived classes.
Protected Types inherited from ml::ClusterAlgorithmBase
enum  { _NR_OF_SUBIMAGES = 2 }
 We do not load the whole image into memory, only keep two slices at once. More...
Protected Member Functions inherited from ml::ClusterAlgorithm< DATATYPE, IdenticalIntensitiesClusterAlgorithm< DATATYPE > >
MLuint updateClusterRefForNeighbor (void *neighborVoxelPtr, MLint x, MLint y, MLint z, DATATYPE currentValue, MLuint currentClusterRef)
MLErrorCode calcClustersForSlices ()
Protected Member Functions inherited from ml::ClusterAlgorithmBase
void setInSliceVoxelType (MLDataType dt)
 Sets voxel type of input slices.
void freeInSliceData ()
 Releases memory of input image slices.
void storeNextSlice (SubImage &slice)
 Sets next image data, expects the data to be managed by memory manager.
MLErrorCode loadNextSlice (MLint sliceNr, const ImageVector &inImgExt)
 Gets next image data.
MLErrorCode loadMaskSlice (TSubImage< MLint8 > &slice, MLint sliceNr, const ImageVector &inImgExt) const
 Gets current slice of the mask image.
MLuint mergeClusterReference (MLint x, MLint y, MLint z, MLuint currClusterRef)
 Merges a cluster reference currClusterRef for position (x,y,z).
void setResultFlag (bool result)
 Sets internal result flag to result.
Static Protected Member Functions inherited from ml::ClusterAlgorithm< DATATYPE, IdenticalIntensitiesClusterAlgorithm< DATATYPE > >
static DATATYPE convertBackgroundValue (MLdouble backgroundValue)
Protected Attributes inherited from ml::ClusterAlgorithmBase
enum ml::ClusterAlgorithmBase:: { ... }  NumInImagesEnum
 We do not load the whole image into memory, only keep two slices at once.
Clusters_clusters
 Result clusters.
SubImage _currentSlices [_NR_OF_SUBIMAGES]
 do not load the whole image into memory, only keep two slices at once
ComputeClusterParameters _parameters

Detailed Description

template<typename DATATYPE>
class ml::IdenticalIntensitiesClusterAlgorithm< DATATYPE >

Implementation of a clustering algorithm checking for identical image intensity values. It uses internally two data structures. One (class ClusterRefVolume) holds references for every image voxel to a field of cluster informations (here ClusterRefCollection). Every image voxel will be checked whether it belongs to the background or if not, if it has neighbors with the same gray value. Merging adjacent cluster is done within ClusterRefCollection.

Definition at line 30 of file mlIdenticalIntensitiesClusterAlgorithm.h.

Constructor & Destructor Documentation

◆ IdenticalIntensitiesClusterAlgorithm()

Member Function Documentation

◆ getVoxel()

template<typename DATATYPE>
ML_FORCE_INLINE DATATYPE ml::IdenticalIntensitiesClusterAlgorithm< DATATYPE >::getVoxel ( void * position)
inlinestatic

Get the typed voxel value for current position.

Definition at line 38 of file mlIdenticalIntensitiesClusterAlgorithm.h.

References ML_FORCE_INLINE.

Referenced by getVoxelAsDouble().

◆ getVoxelAsDouble()

template<typename DATATYPE>
ML_FORCE_INLINE MLdouble ml::IdenticalIntensitiesClusterAlgorithm< DATATYPE >::getVoxelAsDouble ( void * position)
inlinestatic

Definition at line 43 of file mlIdenticalIntensitiesClusterAlgorithm.h.

References getVoxel(), and ML_FORCE_INLINE.

◆ isInTolerance()

template<typename DATATYPE>
ML_FORCE_INLINE bool ml::IdenticalIntensitiesClusterAlgorithm< DATATYPE >::isInTolerance ( DATATYPE neighborValue,
DATATYPE currentValue )
inline

Tolerance calculation for scalar images. Here the test is for equality (zero tolerance). Needed by template function updateClusterRefForNeighbor in base class.

Definition at line 50 of file mlIdenticalIntensitiesClusterAlgorithm.h.

References ML_FORCE_INLINE.


The documentation for this class was generated from the following file: