25 mitkThrow() <<
"data storage is nullptr!";
37 auto statisticContainerCandidateNodes = dataStorage->
GetSubset(predicate);
38 mitk::DataStorage::SetOfObjects::Pointer statisticContainerCandidateNodesFiltered;
40 statisticContainerCandidateNodesFiltered = mitk::DataStorage::SetOfObjects::New();
41 for (
const auto& node : *statisticContainerCandidateNodes) {
42 statisticContainerCandidateNodesFiltered->push_back(node);
45 if (statisticContainerCandidateNodesFiltered->empty()) {
49 auto newestElement = statisticContainerCandidateNodesFiltered->front();
50 if (statisticContainerCandidateNodesFiltered->size() > 1) {
53 return a->GetData()->GetMTime() < b->GetData()->GetMTime();
55 newestElement = *newestIter;
56 MITK_WARN <<
"multiple statistics (" << statisticContainerCandidateNodesFiltered->size() <<
") for image/mask found. Returning only newest one.";
57 for (
const auto& node : *statisticContainerCandidateNodesFiltered) {
58 MITK_DEBUG << node->GetName() <<
", timestamp: " << node->GetData()->GetMTime();
80 auto maskPredicate = maskRule->GetSourcesDetector(mask);
Data management class that handles 'was created by' relations.
Base of all data objects.
static const char * GetStaticNameOfClass()
static mitk::ImageStatisticsContainer::ConstPointer GetImageStatistics(const mitk::DataStorage *dataStorage, const mitk::BaseData *image, const mitk::BaseData *mask=nullptr)
Returns the StatisticContainer for the given image and mask.
SetOfObjects::ConstPointer GetSubset(const NodePredicateBase *condition) const
returns a set of data objects that meet the given condition(s)
static Pointer New(const mitk::NodePredicateBase *_arg)
mitk::Image::Pointer image
static Pointer New(const char *_arg)
mitk::Image::Pointer mask
static mitk::NodePredicateBase::ConstPointer GetPredicateForSources(const mitk::BaseData *image, const mitk::BaseData *mask=nullptr)
Container class for storing a StatisticsObject for each timestep.