]> Creatis software - clitk.git/blobdiff - tools/clitkResampleImageGenericFilter.txx
Merge branch 'master' into GammaIndex3D
[clitk.git] / tools / clitkResampleImageGenericFilter.txx
index 3448227a370cd0feb79276624fc40c2f4bea9f09..7ecf84298ba01aad9a1a63b749ed326857681309 100644 (file)
@@ -49,6 +49,8 @@ clitk::ResampleImageGenericFilter::UpdateWithInputImageType()
   static const unsigned int dim = OutputImageType::ImageDimension;
   typename OutputImageType::SpacingType spacing;
   typename OutputImageType::SizeType size;
+  typename OutputImageType::PointType origin;
+  typename OutputImageType::DirectionType direction;
 
   if (mArgsInfo.like_given) {
     itk::ImageIOBase::Pointer header = clitk::readImageHeader(mArgsInfo.like_arg);
@@ -56,9 +58,17 @@ clitk::ResampleImageGenericFilter::UpdateWithInputImageType()
       for(unsigned int i=0; i<dim; i++){
         spacing[i] = header->GetSpacing(i);
         size[i] = header->GetDimensions(i);
+        origin[i] = header->GetOrigin(i);
+      }
+      for(unsigned int i=0; i<dim; i++) {
+        for(unsigned int j=0;j<dim;j++) {
+            direction(i,j) = header->GetDirection(i)[j];
+        }
       }
       filter->SetOutputSpacing(spacing);
       filter->SetOutputSize(size);
+      filter->SetOutputOrigin(origin);
+      filter->SetOutputDirection(direction);
     }
     else {
       std::cerr << "*** Warning : I could not read '" << mArgsInfo.like_arg << "' ***" << std::endl;
@@ -91,6 +101,16 @@ clitk::ResampleImageGenericFilter::UpdateWithInputImageType()
         size[i] = mArgsInfo.size_arg[i];
       filter->SetOutputSize(size);
     }
+    for(unsigned int i=0; i<dim; i++){
+      origin[i] = input->GetOrigin()[i];
+    }
+    for(unsigned int i=0; i<dim; i++) {
+      for(unsigned int j=0;j<dim;j++) {
+          direction(i,j) = input->GetDirection()[i][j];
+      }
+    }
+    filter->SetOutputOrigin(origin);
+    filter->SetOutputDirection(direction);
   }
 
   // Set temporal dimension