]> Creatis software - clitk.git/blobdiff - itk/clitkCropLikeImageFilter.txx
Utils for bounding box calculation (formerly in clitkSegmentationUtils)
[clitk.git] / itk / clitkCropLikeImageFilter.txx
index 0af957bb20c6e8ae57e5b560920c3a907719ceea..5a9696e8b935434ed969194e89c1e7dd4236c09d 100644 (file)
@@ -21,9 +21,7 @@
 
 // clitk
 #include "clitkCommon.h"
-
-// itk
-#include "itkPasteImageFilter.h"
+#include "clitkPasteImageFilter.h"
 
 //--------------------------------------------------------------------
 template <class ImageType>
@@ -136,6 +134,16 @@ GenerateOutputInformation() {
                           << ") of 'like' is " << likeSpacing[i] << ".");
     }
   }
+
+  // Check that we must crop along each dimension. If not, we use the
+  // size of the input image
+  for(unsigned int i=0; i<ImageType::ImageDimension; i++) {
+    if (m_CropAlongThisDimension[i] == false) {
+      likeStart[i] = input->GetLargestPossibleRegion().GetIndex()[i];
+      likeSize[i] = input->GetLargestPossibleRegion().GetSize()[i];
+    }
+  }
+
   // Define output region 
   m_OutputRegion.SetIndex(likeStart);
   m_OutputRegion.SetSize(likeSize);
@@ -218,7 +226,7 @@ GenerateData() {
   output->FillBuffer(GetBackgroundValue());
   
   // Paste image inside
-  typedef itk::PasteImageFilter<ImageType,ImageType> PasteFilterType;
+  typedef clitk::PasteImageFilter<ImageType,ImageType> PasteFilterType;
   typename PasteFilterType::Pointer pasteFilter = PasteFilterType::New();
   //pasteFilter->ReleaseDataFlagOn(); // change nothing ?
   //  pasteFilter->InPlaceOn(); // makt it seg fault
@@ -233,5 +241,23 @@ GenerateData() {
 }
 //--------------------------------------------------------------------
    
+
+//--------------------------------------------------------------------
+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();  
+}
+//--------------------------------------------------------------------
+
  
-#endif //#define CLITKAUTOCROPFILTER
+#endif //#define CLITKCROPLIKEIMAGEFILTER_TXX