|
MeVisLab Toolbox Reference
|
Implementation of a clustering algorithm for vector data types. More...
#include <mlSimilarVectorDirectionsClusterAlgorithm.h>
Public Types | |
| typedef ClusterAlgorithm< constvoid *, SimilarVectorDirectionsClusterAlgorithm >::ClusterVoxelType | SimilarVectorDirectionsClusterVoxelType |
| Voxel type to be used for the VectorClusterAlgorithm. | |
Public Types inherited from ml::ClusterAlgorithm< const void *, SimilarVectorDirectionsClusterAlgorithm > | |
| typedef const void * | ClusterVoxelType |
| The used type of the voxels, needed by derived classes. | |
Public Member Functions | |
| SimilarVectorDirectionsClusterAlgorithm (const ComputeClusterParameters ¶meters, Clusters *clusters) | |
| Constructor. | |
| MLErrorCode | runClustering () |
| ML_FORCE_INLINE double | calcDotProduct (SimilarVectorDirectionsClusterVoxelType vec1Ptr, SimilarVectorDirectionsClusterVoxelType vec2Ptr) |
| Calculates the dot product of two n-dimensional vectors. | |
| ML_FORCE_INLINE bool | isInTolerance (SimilarVectorDirectionsClusterVoxelType neighborValue, SimilarVectorDirectionsClusterVoxelType currentValue) |
| Tolerance calculation for vector images. | |
Public Member Functions inherited from ml::ClusterAlgorithm< const void *, SimilarVectorDirectionsClusterAlgorithm > | |
| ClusterAlgorithm (const ComputeClusterParameters ¶meters, 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 ¶meters, Clusters *clusters) | |
| Constructor to be used. | |
| virtual | ~ClusterAlgorithmBase () |
| Default virtual destructor. | |
| bool | hasResults () const |
| Returns whether getCluster() and getClusterOfVoxel() contains cluster data. | |
Static Public Member Functions | |
| static ML_FORCE_INLINE SimilarVectorDirectionsClusterVoxelType | getVoxel (void *position) |
| Get the typed voxel value for current position. | |
| static ML_FORCE_INLINE MLdouble | getVoxelAsDouble (void *) |
| static ML_FORCE_INLINE const void * | convertBackgroundValue (MLdouble) |
Additional Inherited Members | |
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< const void *, SimilarVectorDirectionsClusterAlgorithm > | |
| MLuint | updateClusterRefForNeighbor (void *neighborVoxelPtr, MLint x, MLint y, MLint z, const void * currentValue, MLuint currentClusterRef) |
| Checks if neighbor at position x,y,z belongs to the same cluster given by currentClusterRef. | |
| MLErrorCode | calcClustersForSlices () |
| Template applying cluster calculations for one slice. | |
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< const void *, SimilarVectorDirectionsClusterAlgorithm > | |
| static const void * | 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 |
Implementation of a clustering algorithm for vector data types.
It uses internally two data structures. One (class ClusterRefVolume) holds references for every image voxel to a field of cluster informations (here ClusterRefCollection). For every image voxel will be checked whether the difference between the directions of neighboring vectors is within a similarity tolerance. Merging adjacent cluster is done within ClusterRefCollection.
Definition at line 30 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
| typedef ClusterAlgorithm<constvoid*,SimilarVectorDirectionsClusterAlgorithm>::ClusterVoxelType ml::SimilarVectorDirectionsClusterAlgorithm::SimilarVectorDirectionsClusterVoxelType |
Voxel type to be used for the VectorClusterAlgorithm.
Definition at line 35 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
|
inline |
Constructor.
Definition at line 38 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
|
inline |
Calculates the dot product of two n-dimensional vectors.
Definition at line 74 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
|
inlinestatic |
Definition at line 109 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
|
inlinestatic |
Get the typed voxel value for current position.
Definition at line 63 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
|
inlinestatic |
Definition at line 68 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
|
inline |
Tolerance calculation for vector images.
Needed by template function updateClusterRefForNeighbor in base class.
Definition at line 102 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
|
inline |
Definition at line 43 of file mlSimilarVectorDirectionsClusterAlgorithm.h.
References ML_BAD_DATA_TYPE, and ML_RESULT_OK.
Referenced by ml::TypedComputeClusters::process().