4 #include <itkImageRegionConstIterator.h> 5 #include <itkImageRegionIteratorWithIndex.h> 7 #include <itkExpNegativeImageFilter.h> 8 #include <itkDanielssonDistanceMapImageFilter.h> 9 #include <itkGrayscaleDilateImageFilter.h> 10 #include <itkBinaryBallStructuringElement.h> 15 template <
class PixelType,
unsigned int NDimensions>
20 this->Superclass::AddReferenceImage(refImage);
27 template <
class PixelType,
unsigned int NDimensions>
34 this->Superclass::InitializeThreading(maskIndex,workStr);
36 tmpStr->
ref_models.resize(this->GetNumberOfThreads());
37 for (
unsigned int i = 0;i < this->GetNumberOfThreads();++i)
39 std::vector <MCModelPointer> ref_models(m_ReferenceModels.size());
40 for (
unsigned int j = 0;j < m_ReferenceModels.size();++j)
41 ref_models[j] = m_ReferenceModels[j]->Clone();
47 template <
class PixelType,
unsigned int NDimensions>
55 itk::ImageRegionConstIterator <MCMImageType> refItr(refImage,region);
56 typedef typename MCMImageType::PixelType VectorType;
58 MCModelPointer refModel = tmpStr->ref_models[threadId][imageIndex];
59 unsigned int nbPts = 0;
60 unsigned int numIsoCompartments = refModel->GetNumberOfIsotropicCompartments();
64 while (!refItr.IsAtEnd())
66 refModel->SetModelVector(refItr.Get());
70 for (
unsigned int i = 0;i < numIsoCompartments;++i)
71 tmpVal += refModel->GetCompartmentWeight(i);
74 blockVariance += tmpVal * tmpVal;
83 blockVariance = (blockVariance - meanVal * meanVal / nbPts) / (nbPts - 1.0);
85 if (blockVariance > this->GetOrientedModelVarianceThreshold())
MCMPointer & GetDescriptionModel()
void InitializeThreading(unsigned int maskIndex, BlockGeneratorThreadStruct *&workStr) ITK_OVERRIDE
void AddReferenceImage(itk::ImageBase< NDimensions > *refImage) ITK_OVERRIDE
std::vector< std::vector< MCModelPointer > > ref_models
MCModelType::Pointer MCModelPointer
ScalarImageType::RegionType ImageRegionType
bool CheckOrientedModelVariance(unsigned int imageIndex, ImageRegionType ®ion, double &blockVariance, BlockGeneratorThreadStruct *workStr, unsigned int threadId) ITK_OVERRIDE