]> Creatis software - clitk.git/blobdiff - itk/clitkCropLikeImageFilter.txx
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
[clitk.git] / itk / clitkCropLikeImageFilter.txx
index 73dd7a7d1532f0f885d1a35f71296145b9691f9f..6399ec6ac7e5419ca870e6e7cd61bf6b072810ef 100644 (file)
@@ -23,9 +23,6 @@
 #include "clitkCommon.h"
 #include "clitkPasteImageFilter.h"
 
-// itk
-//#include "itkPasteImageFilter.h"
-
 //--------------------------------------------------------------------
 template <class ImageType>
 clitk::CropLikeImageFilter<ImageType>::
@@ -33,7 +30,7 @@ CropLikeImageFilter():itk::ImageToImageFilter<ImageType, ImageType>() {
   this->SetNumberOfRequiredInputs(1);
   m_LikeImage = NULL;
   m_LikeFilenameIsGiven = false;
-  this->SetBackgroundValue(0);
+  this->SetBackgroundValue(typename PixelTraits<typename ImageType::PixelType>::ValueType(0));
   m_CropAlongThisDimension.resize(ImageType::ImageDimension);
   for(uint i=0; i<ImageType::ImageDimension; i++)
     m_CropAlongThisDimension[i] = true;
@@ -244,5 +241,59 @@ GenerateData() {
 }
 //--------------------------------------------------------------------
    
-#endif //#define CLITKAUTOCROPFILTER
+
+//--------------------------------------------------------------------
+template<class ImageType>
+typename ImageType::Pointer
+clitk::ResizeImageLike(const ImageType * input,                       
+                       const itk::ImageBase<ImageType::ImageDimension> * like, 
+                       typename ImageType::PixelType backgroundValue) 
+{
+  typedef clitk::CropLikeImageFilter<ImageType> CropFilterType;
+  typename CropFilterType::Pointer cropFilter = CropFilterType::New();
+  cropFilter->SetInput(input);
+  cropFilter->SetCropLikeImage(like);
+  cropFilter->SetBackgroundValue(backgroundValue);
+  cropFilter->Update();
+  return cropFilter->GetOutput();  
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+template<class ImageType>
+typename ImageType::Pointer
+clitk::ResizeImageLike(const ImageType * input,                       
+                       typename itk::ImageBase<ImageType::ImageDimension>::RegionType * region, 
+                       typename ImageType::PixelType backgroundValue) 
+{
+  typename ImageType::Pointer output = ImageType::New();
+  output->CopyInformation(input);
+  typename ImageType::RegionType reg;
+  reg.SetIndex(region->GetIndex());
+  reg.SetSize(region->GetSize());
+  output->SetRegions(reg);
+  output->Allocate();
+  return clitk::ResizeImageLike<ImageType>(input, output, backgroundValue);
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+template<class ImageType>
+typename ImageType::Pointer
+clitk::ResizeImageLike(const ImageType * input, 
+                       typename itk::BoundingBox<unsigned long, ImageType::ImageDimension>::Pointer bb, 
+                       typename ImageType::PixelType BG)
+{
+  typename ImageType::RegionType region;
+  clitk::ComputeRegionFromBB<ImageType>(input, bb, region);
+  typename ImageType::Pointer output = ImageType::New();
+  output->CopyInformation(input);
+  output->SetRegions(region);
+  output->Allocate();
+  return clitk::ResizeImageLike<ImageType>(input, output, BG);   
+}
+//--------------------------------------------------------------------
+
+#endif //#define CLITKCROPLIKEIMAGEFILTER_TXX