]> Creatis software - clitk.git/blobdiff - common/clitkImageCommon.h
Make clitkBSplineDeformableRegistration work with itk BSplines
[clitk.git] / common / clitkImageCommon.h
index 11ddaba67441645957ac8f1aa2aa4e13917626fc..3cd8ae51520d7623bb95e0ccca692e329142684e 100644 (file)
@@ -1,26 +1,31 @@
-#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
+/*=========================================================================
+  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
 
- * @brief  
+  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.
 
- -------------------------------------------------------------------*/
+  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 {
   
@@ -35,6 +40,11 @@ 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)
 
@@ -66,10 +76,6 @@ namespace clitk {
   // 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, 
@@ -81,6 +87,24 @@ namespace clitk {
                                   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