Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
+ - Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
This software is distributed WITHOUT ANY WARRANTY; without even
- BSD See included LICENSE.txt file
- CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-======================================================================-====*/
+===========================================================================**/
#ifndef __clitkGenericMetric_txx
#define __clitkGenericMetric_txx
m_Maximize=false;
m_Verbose=false;
m_FixedImageRegionGiven=false;
-#ifdef ITK_USE_OPTIMISED_REGISTRATION_METHODS
+#ifdef ITK_USE_OPTIMIZED_REGISTRATION_METHODS
m_FixedImageSamplesIntensityThreshold=0;
m_UseFixedImageSamplesIntensityThreshold=false;
#endif
typedef itk::ImageMaskSpatialObject<itkGetStaticConstMacro(FixedImageDimension)> ImageMaskSpatialObjectType;
- typename ImageMaskSpatialObjectType::ConstPointer mask = dynamic_cast<const ImageMaskSpatialObjectType*>(m_FixedImageMask.GetPointer());
-
+ typename ImageMaskSpatialObjectType::ConstPointer mask = NULL;
+ if (m_FixedImageMask.IsNotNull())
+ mask = dynamic_cast<const ImageMaskSpatialObjectType*>(m_FixedImageMask.GetPointer());
+
typedef typename ImageMaskSpatialObjectType::RegionType ImageMaskRegionType;
- ImageMaskRegionType mask_region = mask->GetAxisAlignedBoundingBoxRegion();
-
+ ImageMaskRegionType mask_region;
+ if (mask.IsNotNull())
+ mask_region = mask->GetAxisAlignedBoundingBoxRegion();
+
// Common properties
- if( m_FixedImageMask.IsNotNull() )
+ if( m_FixedImageMask.IsNotNull() )
m_Metric->SetFixedImageMask(m_FixedImageMask);
-
+
m_Metric->SetFixedImageRegion(m_FixedImageRegion);
//m_Metric->SetFixedImageRegion(mask_region);
// 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 );
// --------------------------------------------------
}
// Intensity?
+ /*
if( m_UseFixedImageSamplesIntensityThreshold &&
( regionIter.Get() < m_FixedImageSamplesIntensityThreshold) ) {
++regionIter; // jump to next pixel
continue;
}
+ */
// Add point to the numbers
fiic.push_back(index);
}
// 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);
if (m_Verbose) std::cout<<"A fraction of "<<m_ArgsInfo.samples_arg<<" spatial samples was requested..."<<std::endl;
double fraction=(double)numberOfValidPixels/ (double) totalNumberOfPixels;
if (m_Verbose) std::cout<<"Found "<<numberOfValidPixels <<" valid pixels for a total of "<<totalNumberOfPixels<<" (a fraction of "<<fraction<<")..."<<std::endl;
+ if (m_Verbose) std::cout<<"number of mask pixels "<<totalNumberOfMaskPixels<<std::endl;
}