-#ifndef CLITKIMAGECOMMON_H
-#define CLITKIMAGECOMMON_H
+/*=========================================================================
+ Program: vv http://www.creatis.insa-lyon.fr/rio/vv
+
+ Authors belong to:
+ - University of LYON http://www.universite-lyon.fr/
+ - Léon Bérard cancer center http://www.centreleonberard.fr
+ - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
-/**
- -------------------------------------------------------------------
- * @file clitkImageCommon.h
- * @author David Sarrut <David.Sarrut@creatis.insa-lyon.fr>
- * @date 07 Sep 2007 11:30:10
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the copyright notices for more information.
- * @brief
+ It is distributed under dual licence
- -------------------------------------------------------------------*/
+ - BSD See included LICENSE.txt file
+ - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+===========================================================================**/
+#ifndef CLITKIMAGECOMMON_H
+#define CLITKIMAGECOMMON_H
// clitk
-#include "clitkCommon.h"
+//#include "clitkCommon.h"
// itk
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageSeriesReader.h"
#include "itkImageFileWriter.h"
-#include "gdcmFile.h"
-#include "gdcmFileHelper.h"
-
namespace clitk {
template<class PixelType>
typename itk::Image<PixelType,4>::Pointer NewImage4D(int sx, int sy, int sz, int st, double dx=1.0, double dy=1.0, double dz=1.0, double dt=1.0);
+ template<class ImageType>
+ typename ImageType::Pointer NewImageLike(const typename ImageType::Pointer input, bool allocate=true);
+
+ template<class ImageType>
+ void CopyValues(const typename ImageType::Pointer input, typename ImageType::Pointer output);
//--------------------------------------------------------------------
// New Image creation (with allocation)
//--------------------------------------------------------------------
// Read/print image header
- itk::ImageIOBase::Pointer readImageHeader(const std::string & filename);
+ 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, 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::map<typename MaskImageType::PixelType,
std::map<typename InputImageType::PixelType, double> > & mapOfLabelsAndWeights);
+ //--------------------------------------------------------------------
+ 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);
+
+ //--------------------------------------------------------------------
+ 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);
+
#include "clitkImageCommon.txx"
} // end namespace