]> Creatis software - clitk.git/commitdiff
add "HasSameSize" utils
authordsarrut <dsarrut>
Wed, 30 Jun 2010 05:55:57 +0000 (05:55 +0000)
committerdsarrut <dsarrut>
Wed, 30 Jun 2010 05:55:57 +0000 (05:55 +0000)
common/clitkImageCommon.cxx
common/clitkImageCommon.h
common/clitkImageCommon.txx

index 03aa9b6a5d687469e179fe5ddc37d4c86189d3ca..d2ab8673778dc1b92fb3b618430df840cce21766 100644 (file)
@@ -38,7 +38,7 @@ void clitk::ReadImageDimensionAndPixelType(const std::string & filename,
   itk::ImageIOBase::Pointer genericReader =
     itk::ImageIOFactory::CreateImageIO(filename.c_str(), itk::ImageIOFactory::ReadMode);
   if (!genericReader) {
-    std::cerr << "Image file format unknown while reading " << filename << std::endl;
+    std::cerr << "Image file format unknown while reading file <" << filename << ">" << std::endl;
     exit(0);
   }
   genericReader->SetFileName(filename.c_str());
@@ -137,6 +137,7 @@ void clitk::printImageHeader(itk::ImageIOBase::Pointer header, std::ostream & os
     for(unsigned int i=0; i< dim-1; i++)
       os << inputOrigin[i] << "x";
     os << inputOrigin[dim-1] << " ";
+    os << header->GetImageSizeInPixels() << " ";
   } else {
     os << "Dim       = " << dim << "D" << std::endl;
     os << "PixelType = " << pixelTypeName << std::endl;
index 11bdb8f2efc46a9c807a3942637d84316a4f5b07..294c19a6212054c5a0be39f45a233d9a1de2e96a 100644 (file)
 ======================================================================-====*/
 #ifndef CLITKIMAGECOMMON_H
 #define CLITKIMAGECOMMON_H
-/**
- -------------------------------------------------------------------
- * @file   clitkImageCommon.h
- * @author David Sarrut <David.Sarrut@creatis.insa-lyon.fr>
- * @date   07 Sep 2007 11:30:10
-
- * @brief  
-
- -------------------------------------------------------------------*/
 
 // clitk
 #include "clitkCommon.h"
@@ -103,6 +94,15 @@ namespace clitk {
                                   std::map<typename MaskImageType::PixelType, 
                                   std::map<typename InputImageType::PixelType, double> > & mapOfLabelsAndWeights);
 
+  //--------------------------------------------------------------------
+  template<class ImageType1, class ImageType2>
+  bool HasSameSizeAndSpacing(typename ImageType1::ConstPointer A, 
+                             typename ImageType2::ConstPointer B);
+
+  template<class ImageType1, class ImageType2>
+  bool HasSameSizeAndSpacing(typename ImageType1::Pointer A, 
+                             typename ImageType2::Pointer B);
+
 #include "clitkImageCommon.txx"
 
 } // end namespace
index 5fb4b86518cbc00d8877ce96324cf150f5504baa..7b6badf48d1286e87a40ba07e4a2023f285cde52 100644 (file)
@@ -181,6 +181,7 @@ typename ImageType::Pointer readImage(const std::vector<std::string> & filenames
 }
 //--------------------------------------------------------------------
 
+
 //--------------------------------------------------------------------
 template<class ImageType>
 void writeImage(const typename ImageType::Pointer image, const std::string & filename, const bool verbose)
@@ -202,6 +203,7 @@ void writeImage(const typename ImageType::Pointer image, const std::string & fil
 }
 //--------------------------------------------------------------------
 
+
 //--------------------------------------------------------------------
 template<class ImageType>
 void writeImage(const ImageType* image, const std::string & filename, const bool verbose)
@@ -278,6 +280,7 @@ int ComputeHowManyDifferentIntensity(const typename ImageType::Pointer & image,
 }
 //--------------------------------------------------------------------
 
+
 //--------------------------------------------------------------------
 template<class InputImageType, class MaskImageType>
 void ComputeWeightsOfEachClasses(const typename InputImageType::Pointer & input,
@@ -313,5 +316,34 @@ void ComputeWeightsOfEachClasses(const typename InputImageType::Pointer & input,
 }
 //--------------------------------------------------------------------
 
+
+//--------------------------------------------------------------------
+template<class ImageType1, class ImageType2>
+bool HasSameSizeAndSpacing(typename ImageType1::ConstPointer A, 
+                           typename ImageType2::ConstPointer B) 
+{
+  if (A->GetImageDimension() != B->GetImageDimension()) return false;
+  for(unsigned int i=0; i<A->GetImageDimension(); i++) {
+    if (A->GetSpacing()[i] != B->GetSpacing()[i]) return false;
+    if (A->GetLargestPossibleRegion().GetSize()[i] != B->GetLargestPossibleRegion().GetSize()[i]) return false;
+  }
+  return true;
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+template<class ImageType1, class ImageType2>
+bool HasSameSizeAndSpacing(typename ImageType1::Pointer A, 
+                           typename ImageType2::Pointer B) 
+{
+  if (A->GetImageDimension() != B->GetImageDimension()) return false;
+  for(unsigned int i=0; i<A->GetImageDimension(); i++) {
+    if (A->GetSpacing()[i] != B->GetSpacing()[i]) return false;
+    if (A->GetLargestPossibleRegion().GetSize()[i] != B->GetLargestPossibleRegion().GetSize()[i]) return false;
+  }
+  return true;
+}
+//--------------------------------------------------------------------
+
 #endif /* end #define CLITKIMAGECOMMON_TXX */