- template<class ImageType>
- void writeImage(const ImageType* image, const std::string & filename, const bool verbose=false);
-
- //--------------------------------------------------------------------
- // Read/print image header
- itk::ImageIOBase::Pointer readImageHeader(const std::string & filename);
- void printImageHeader(itk::ImageIOBase::Pointer header, std::ostream & os, const int level=0);
-
- //--------------------------------------------------------------------
- // Determine pixetype and dimension of an image file
- void ReadImageDimensionAndPixelType(const std::string & filename, int & dimension, std::string & pixeType);
-
- //--------------------------------------------------------------------
- // Determine pixetype, dimension and number of pixel components of an image file
- void ReadImageDimensionAndPixelType(const std::string & filename, int & dimension, std::string & pixeType, int & components);
-
- //--------------------------------------------------------------------
- // Read a dicom header
- gdcm::File * readDicomHeader(const std::string & filename, const bool verbose=false);
-
- //--------------------------------------------------------------------
- template<class ImageType>
- int ComputeHowManyDifferentIntensity(const typename ImageType::Pointer & image,
- std::vector<typename ImageType::PixelType> & listOfIntensities);
- template<class InputImageType, class MaskImageType>
- void ComputeWeightsOfEachClasses(const typename InputImageType::Pointer & input,
- const typename MaskImageType::Pointer & mask,
- const std::vector<typename MaskImageType::PixelType> & listOfIntensities,
- std::map<typename MaskImageType::PixelType,
- std::map<typename InputImageType::PixelType, double> > & mapOfLabelsAndWeights);
+template<class ImageType>
+void writeImage(const ImageType* image, const std::string & filename, const bool verbose=false, const bool compression=false);
+
+//--------------------------------------------------------------------
+// Read/print image header
+itk::ImageIOBase::Pointer readImageHeader(const std::string & filename,bool exit_on_error=true);
+void printImageHeader(itk::ImageIOBase::Pointer header, std::ostream & os, const int level=0);
+
+//--------------------------------------------------------------------
+// Determine pixetype and dimension of an image file
+void ReadImageDimensionAndPixelType(const std::string & filename, int & dimension, std::string & pixeType);
+
+//--------------------------------------------------------------------
+// Determine pixetype, dimension and number of pixel components of an image file
+void ReadImageDimensionAndPixelType(const std::string & filename, int & dimension, std::string & pixeType, int & components);
+
+//--------------------------------------------------------------------
+template<class ImageType>
+int ComputeHowManyDifferentIntensity(const typename ImageType::Pointer & image,
+ std::vector<typename ImageType::PixelType> & listOfIntensities);
+template<class InputImageType, class MaskImageType>
+void ComputeWeightsOfEachClasses(const typename InputImageType::Pointer & input,
+ const typename MaskImageType::Pointer & mask,
+ const std::vector<typename MaskImageType::PixelType> & listOfIntensities,
+ std::map<typename MaskImageType::PixelType,
+ std::map<typename InputImageType::PixelType, double> > & mapOfLabelsAndWeights);
+
+//--------------------------------------------------------------------
+template<class ImageType1, class ImageType2>
+bool HaveSameSpacing(typename ImageType1::ConstPointer A,
+ typename ImageType2::ConstPointer B);
+
+template<class ImageType1, class ImageType2>
+bool HaveSameSpacing(typename ImageType1::Pointer A,
+ typename ImageType2::Pointer B);
+
+//--------------------------------------------------------------------
+template<class ImageType1, class ImageType2>
+bool HaveSameSize(typename ImageType1::ConstPointer A,
+ typename ImageType2::ConstPointer B);
+
+template<class ImageType1, class ImageType2>
+bool HaveSameSize(typename ImageType1::Pointer A,
+ typename ImageType2::Pointer B);
+
+//--------------------------------------------------------------------
+template<class ImageType1, class ImageType2>
+bool HaveSameSizeAndSpacing(typename ImageType1::ConstPointer A,
+ typename ImageType2::ConstPointer B);
+
+template<class ImageType1, class ImageType2>
+bool HaveSameSizeAndSpacing(typename ImageType1::Pointer A,
+ typename ImageType2::Pointer B);