![]() |
OpenWalnut
1.5.0dev
|
Class implements a hierarchical tree and provides helper functions for selection and navigation. More...
#include <WHierarchicalTreeFibers.h>
Inheritance diagram for WHierarchicalTreeFibers:
Collaboration diagram for WHierarchicalTreeFibers:Public Member Functions | |
| WHierarchicalTreeFibers () | |
| standard constructor More... | |
| ~WHierarchicalTreeFibers () | |
| destructor More... | |
| void | addLeaf () |
| A leaf is at the very bottom of the tree, it represents a single fiber or voxel, for several purposes a leaf also counts as a cluster. More... | |
| void | addCluster (size_t cluster1, size_t cluster2, size_t level, std::vector< size_t > leafes, float customData) |
| adds a cluster to the set, it combines 2 already existing clusters More... | |
| std::shared_ptr< std::vector< bool > > | getOutputBitfield (size_t cluster) |
| generates a bitfield where for every leaf in the selected cluster the value is true, false otherwise More... | |
| std::shared_ptr< std::vector< bool > > | getOutputBitfield (std::vector< size_t >clusters) |
| generates a bitfield where for every leaf in the selected cluster the value is true, false otherwise More... | |
| std::vector< size_t > | getBestClustersFittingRoi (float ratio=0.9, size_t number=1) |
| finds clusters that match a given ROI up to a certain percentage More... | |
| float | getRatio (size_t cluster) |
| calculates the ratio of fibers in the roi for a given cluster More... | |
| void | setRoiBitField (std::shared_ptr< std::vector< bool > > bitfield) |
| setter More... | |
Public Member Functions inherited from WHierarchicalTree | |
| WHierarchicalTree () | |
| standard constructor More... | |
| virtual | ~WHierarchicalTree () |
| destructor More... | |
| size_t | getLeafCount () const |
| getter More... | |
| size_t | getClusterCount () const |
| getter More... | |
| size_t | getMaxLevel () const |
| getter More... | |
| size_t | getLevel (size_t cluster) const |
| getter More... | |
| size_t | getParent (size_t cluster) const |
| getter More... | |
| float | getCustomData (size_t cluster) const |
| getter More... | |
| void | setColor (WColor color, size_t cluster) |
| setter sets the color for a single cluster More... | |
| WColor | getColor (size_t cluster) const |
| getter More... | |
| std::pair< size_t, size_t > | getChildren (size_t cluster) const |
| getter More... | |
| std::vector< size_t > | getLeafesForCluster (size_t cluster) const |
| getter More... | |
| size_t | size (size_t cluster) const |
| getter More... | |
| bool | isLeaf (size_t cluster) const |
| checks if a cluster is a leaf or a cluster More... | |
| std::vector< size_t > | downXLevelsFromTop (size_t level, bool hideOutliers=false) const |
| returns a number of clusters at a certain level down from top cluster More... | |
| std::vector< size_t > | findXBiggestClusters (size_t cluster, size_t number=10) const |
| finds the X biggest clusters for a given cluster More... | |
| void | colorCluster (size_t cluster, WColor color) |
| sets the color for a selected cluster and all sub clusters More... | |
Private Attributes | |
| std::shared_ptr< std::vector< bool > > | m_roiSelection |
| stores a pointer to the bitfield by the current roi setting More... | |
Additional Inherited Members | |
Protected Attributes inherited from WHierarchicalTree | |
| size_t | m_clusterCount |
| overall number of cluster, counts both leafes ( clusters of size one ) and real clusters More... | |
| size_t | m_leafCount |
| number of leaf nodes More... | |
| size_t | m_maxLevel |
| the maximum level, naturally the level of the root node More... | |
| bool | m_leafesLocked |
| to enforce valid datastructures there will be no leaf with an id higher than a cluster, thus when the first cluster is inserted, no leafes may be added More... | |
| std::vector< size_t > | m_level |
| vector that stores the level of each cluster, the level is the maximum of the levels of the child clusters +1 More... | |
| std::vector< size_t > | m_parents |
| vector that stores the parent cluster for each cluster More... | |
| std::vector< std::pair< size_t, size_t > > | m_children |
| vector that stores the 2 children of each cluster, contains an empty pair for leafes More... | |
| std::vector< float > | m_customData |
| custom data for each cluster, this may some energy or similarity level generated by the clustering algorithm or something completely different More... | |
| std::vector< WColor > | m_colors |
| a color value for each cluster More... | |
| std::vector< std::vector< size_t > > | m_containsLeafes |
| vector that stores the leaf id's for each cluster, this is quite memory intensive but speeds up selection of leafes for nodes at higher levels More... | |
Class implements a hierarchical tree and provides helper functions for selection and navigation.
Definition at line 42 of file WHierarchicalTreeFibers.h.
| WHierarchicalTreeFibers::WHierarchicalTreeFibers | ( | ) |
standard constructor
Definition at line 35 of file WHierarchicalTreeFibers.cpp.
| WHierarchicalTreeFibers::~WHierarchicalTreeFibers | ( | ) |
destructor
Definition at line 40 of file WHierarchicalTreeFibers.cpp.
| void WHierarchicalTreeFibers::addCluster | ( | size_t | cluster1, |
| size_t | cluster2, | ||
| size_t | level, | ||
| std::vector< size_t > | leafes, | ||
| float | customData | ||
| ) |
adds a cluster to the set, it combines 2 already existing clusters
| cluster1 | first cluster to add |
| cluster2 | second cluster to add |
| level | level of the new cluster |
| leafes | vector of leafes the new cluster contains |
| customData | some arbitrary data stored with the cluster |
Definition at line 65 of file WHierarchicalTreeFibers.cpp.
References WHierarchicalTree::m_children, WHierarchicalTree::m_clusterCount, WHierarchicalTree::m_colors, WHierarchicalTree::m_containsLeafes, WHierarchicalTree::m_customData, WHierarchicalTree::m_leafesLocked, WHierarchicalTree::m_level, WHierarchicalTree::m_maxLevel, and WHierarchicalTree::m_parents.
Referenced by WMClusterDisplay::loadTreeAscii().
Here is the caller graph for this function:
|
virtual |
A leaf is at the very bottom of the tree, it represents a single fiber or voxel, for several purposes a leaf also counts as a cluster.
Implements WHierarchicalTree.
Definition at line 44 of file WHierarchicalTreeFibers.cpp.
References WHierarchicalTree::m_children, WHierarchicalTree::m_clusterCount, WHierarchicalTree::m_colors, WHierarchicalTree::m_containsLeafes, WHierarchicalTree::m_customData, WHierarchicalTree::m_leafCount, WHierarchicalTree::m_leafesLocked, WHierarchicalTree::m_level, and WHierarchicalTree::m_parents.
Referenced by WMClusterDisplay::loadTreeAscii().
Here is the caller graph for this function:| std::vector< size_t > WHierarchicalTreeFibers::getBestClustersFittingRoi | ( | float | ratio = 0.9, |
| size_t | number = 1 |
||
| ) |
finds clusters that match a given ROI up to a certain percentage
| ratio | value of [0,1] of how many leafs have to be in the ROI to activate the cluster |
| number | number of clusters to select, if more than given number matches the ratio criterion only the biggest clusters are returned |
Definition at line 134 of file WHierarchicalTreeFibers.cpp.
References WHierarchicalTree::getChildren(), WHierarchicalTree::getClusterCount(), WHierarchicalTree::getLevel(), and getRatio().
Referenced by WMClusterDisplay::handleRoiChanged().
Here is the call graph for this function:
Here is the caller graph for this function:| std::shared_ptr< std::vector< bool > > WHierarchicalTreeFibers::getOutputBitfield | ( | size_t | cluster | ) |
generates a bitfield where for every leaf in the selected cluster the value is true, false otherwise
| cluster |
Definition at line 86 of file WHierarchicalTreeFibers.cpp.
References WHierarchicalTree::m_clusterCount, WHierarchicalTree::m_containsLeafes, and WHierarchicalTree::m_leafCount.
Referenced by WMClusterDisplay::colorClusters(), WMClusterDisplay::handleBiggestClustersChanged(), WMClusterDisplay::handleRoiChanged(), WMClusterDisplay::handleSelectedClusterChanged(), and WMClusterDisplay::widgetClicked().
Here is the caller graph for this function:| std::shared_ptr< std::vector< bool > > WHierarchicalTreeFibers::getOutputBitfield | ( | std::vector< size_t > | clusters | ) |
generates a bitfield where for every leaf in the selected cluster the value is true, false otherwise
| clusters |
Definition at line 115 of file WHierarchicalTreeFibers.cpp.
References WHierarchicalTree::m_containsLeafes, and WHierarchicalTree::m_leafCount.
| float WHierarchicalTreeFibers::getRatio | ( | size_t | cluster | ) |
calculates the ratio of fibers in the roi for a given cluster
| cluster |
Definition at line 190 of file WHierarchicalTreeFibers.cpp.
References WHierarchicalTree::m_containsLeafes, and m_roiSelection.
Referenced by getBestClustersFittingRoi().
Here is the caller graph for this function:
|
inline |
setter
| bitfield |
Definition at line 121 of file WHierarchicalTreeFibers.h.
References m_roiSelection.
Referenced by WMClusterDisplay::moduleMain().
Here is the caller graph for this function:
|
private |
stores a pointer to the bitfield by the current roi setting
Definition at line 117 of file WHierarchicalTreeFibers.h.
Referenced by getRatio(), and setRoiBitField().