]> Creatis software - clitk.git/blobdiff - tools/clitkInvertVFGenericFilter.txx
invert VF on given image grid
[clitk.git] / tools / clitkInvertVFGenericFilter.txx
index b9641fad1f376cf85d7b046f36f95e01958b734b..2ddd46c5b4d6cc51422efd9fb17e5f6d97a4a0a7 100644 (file)
@@ -129,6 +129,19 @@ InvertVFGenericFilter<args_info_type>::UpdateWithDimAndPixelType()
     typedef clitk::InvertVFFilter<InputImageType,OutputImageType> FilterType;
     typename FilterType::Pointer filter =FilterType::New();
     filter->SetInput(input);
+    typename FilterType::SpacingType spacing = input->GetSpacing();
+    typename FilterType::SizeType size = input->GetLargestPossibleRegion().GetSize();
+    if (m_ArgsInfo.like_given) {
+      itk::ImageIOBase::Pointer header = readImageHeader(m_ArgsInfo.like_arg);
+      for(unsigned int i=0; i<InputImageType::ImageDimension; i++) {
+        size[i] = header->GetDimensions(i);
+        spacing[i] = header->GetSpacing(i);
+      }
+    }
+    std::cout << spacing << size << std::endl;
+    filter->SetOutputSpacing(spacing);
+    filter->SetOutputSize(size);
+
     filter->SetVerbose(m_Verbose);
     if (m_ArgsInfo.threads_given) filter->SetNumberOfThreads(m_ArgsInfo.threads_arg);
     if (m_ArgsInfo.pad_given) {
@@ -148,7 +161,11 @@ InvertVFGenericFilter<args_info_type>::UpdateWithDimAndPixelType()
 
   case 1: {
     // Create the InverseDeformationFieldFilter
+#if ITK_VERSION_MAJOR >= 4
+    typedef itk::InverseDisplacementFieldImageFilter<InputImageType,OutputImageType> FilterType;
+#else
     typedef itk::InverseDeformationFieldImageFilter<InputImageType,OutputImageType> FilterType;
+#endif
     typename FilterType::Pointer filter =FilterType::New();
     filter->SetInput(input);
     filter->SetOutputOrigin(input->GetOrigin());