]> Creatis software - clitk.git/blobdiff - registration/clitkGenericMetric.txx
debugging messages
[clitk.git] / registration / clitkGenericMetric.txx
index d57d3c24c4b3793feb0db38afdb1bff0bed6f0b5..b5df490d70c64c75986609cde2b134dae33ee6de 100644 (file)
@@ -257,15 +257,19 @@ GenericMetric<args_info_type,FixedImageType, MovingImageType>::GetMetricPointer(
 
 
   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);
 
@@ -300,7 +304,7 @@ GenericMetric<args_info_type,FixedImageType, MovingImageType>::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 );
 
     // --------------------------------------------------
@@ -427,6 +431,7 @@ GenericMetric<args_info_type,FixedImageType, MovingImageType>::GetMetricPointer(
     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;
 
   }