X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=registration%2FclitkGenericMetric.txx;h=d4a19c26d5f15a733e4838b3b6cfa1f110e78d72;hb=706d7e2dc69e12b3823cfae2f3be3f903e4d3c80;hp=6f10e72a1ee1e04744927727c70dbfe31b800056;hpb=dad5855771b7655a9a6cdd51947e17128f24af3b;p=clitk.git diff --git a/registration/clitkGenericMetric.txx b/registration/clitkGenericMetric.txx index 6f10e72..d4a19c2 100644 --- a/registration/clitkGenericMetric.txx +++ b/registration/clitkGenericMetric.txx @@ -31,15 +31,13 @@ namespace clitk template GenericMetric::GenericMetric() { - m_Metric=NULL; + m_Metric=ITK_NULLPTR; m_Maximize=false; m_Verbose=false; m_FixedImageRegionGiven=false; -#ifdef ITK_USE_OPTIMISED_REGISTRATION_METHODS m_FixedImageSamplesIntensityThreshold=0; m_UseFixedImageSamplesIntensityThreshold=false; -#endif - m_FixedImageMask=NULL; + m_FixedImageMask=ITK_NULLPTR; } @@ -256,11 +254,15 @@ GenericMetric::GetMetricPointer( } - //typedef itk::ImageMaskSpatialObject ImageMaskSpatialObjectType; - //typename ImageMaskSpatialObjectType::ConstPointer mask = dynamic_cast(m_FixedImageMask.GetPointer()); + typedef itk::ImageMaskSpatialObject ImageMaskSpatialObjectType; + typename ImageMaskSpatialObjectType::ConstPointer mask = ITK_NULLPTR; + if (m_FixedImageMask.IsNotNull()) + mask = dynamic_cast(m_FixedImageMask.GetPointer()); - //typedef typename ImageMaskSpatialObjectType::RegionType ImageMaskRegionType; - //ImageMaskRegionType mask_region = mask->GetAxisAlignedBoundingBoxRegion(); + typedef typename ImageMaskSpatialObjectType::RegionType ImageMaskRegionType; + ImageMaskRegionType mask_region; + if (mask.IsNotNull()) + mask_region = mask->GetAxisAlignedBoundingBoxRegion(); // Common properties if( m_FixedImageMask.IsNotNull() ) @@ -269,9 +271,6 @@ GenericMetric::GetMetricPointer( m_Metric->SetFixedImageRegion(m_FixedImageRegion); //m_Metric->SetFixedImageRegion(mask_region); - -#ifdef ITK_USE_OPTIMIZED_REGISTRATION_METHODS - //============================================================================ // Set the lower intensity threshold if (m_ArgsInfo.intThreshold_given) { @@ -300,7 +299,7 @@ GenericMetric::GetMetricPointer( // Calculate the number const unsigned int totalNumberOfPixels = m_FixedImageRegion.GetNumberOfPixels(); - //const unsigned int totalNumberOfPixels = mask_region.GetNumberOfPixels(); + const unsigned int totalNumberOfMaskPixels = mask_region.GetNumberOfPixels(); const unsigned int numberOfDemandedPixels = static_cast< unsigned int >( (double) totalNumberOfPixels *m_ArgsInfo.samples_arg ); // -------------------------------------------------- @@ -333,11 +332,13 @@ GenericMetric::GetMetricPointer( } // Intensity? + /* if( m_UseFixedImageSamplesIntensityThreshold && ( regionIter.Get() < m_FixedImageSamplesIntensityThreshold) ) { ++regionIter; // jump to next pixel continue; } + */ // Add point to the numbers fiic.push_back(index); @@ -359,7 +360,7 @@ GenericMetric::GetMetricPointer( //RandomIterator randIter( m_FixedImage, mask_region ); if (m_Verbose) std::cout << "Search region " << m_FixedImageRegion << std::endl; - //if (m_Verbose) std::cout << "Mask search region " << mask_region << std::endl; + if (m_Verbose) std::cout << "Mask search region " << mask_region << std::endl; // Randomly sample the image short att = 1; @@ -396,13 +397,13 @@ GenericMetric::GetMetricPointer( } // Intensity? - if( m_UseFixedImageSamplesIntensityThreshold && - randIter.Get() < m_FixedImageSamplesIntensityThreshold ) { - ++randIter; - //if (m_Verbose) std::cout << "not in threshold" << std::endl; - count_not_thres++; - continue; - } +// if( m_UseFixedImageSamplesIntensityThreshold && +// randIter.Get() < m_FixedImageSamplesIntensityThreshold ) { +// ++randIter; +// //if (m_Verbose) std::cout << "not in threshold" << std::endl; +// count_not_thres++; +// continue; +// } // Add point to the numbers fiic.push_back(index); @@ -427,14 +428,9 @@ GenericMetric::GetMetricPointer( if (m_Verbose) std::cout<<"A fraction of "<