]> Creatis software - clitk.git/blobdiff - common/clitkImageCommon.h
improvements to the Dicom struct handling code, including better computation of extruding
[clitk.git] / common / clitkImageCommon.h
index 53e1be6186347b6b8f2a9d7929811d2ab0f46195..e734d21bf402367538169da3d250a7a12dbb8114 100644 (file)
@@ -1,15 +1,22 @@
-#ifndef CLITKIMAGECOMMON_H
-#define CLITKIMAGECOMMON_H
+/*=========================================================================
+  Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
 
-/**
- -------------------------------------------------------------------
- * @file   clitkImageCommon.h
- * @author David Sarrut <David.Sarrut@creatis.insa-lyon.fr>
- * @date   07 Sep 2007 11:30:10
+  Authors belong to: 
+  - University of LYON              http://www.universite-lyon.fr/
+  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.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"
@@ -36,6 +43,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)
 
@@ -56,7 +68,7 @@ namespace clitk {
 
   //--------------------------------------------------------------------
   // 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);
 
   //--------------------------------------------------------------------
@@ -82,6 +94,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