]> Creatis software - clitk.git/blobdiff - itk/clitkBackProjectImageFilter.txx
ITK v4 compatibility
[clitk.git] / itk / clitkBackProjectImageFilter.txx
index 0e30a9a1eacc306329d79461b2d70fe83db5c6b2..c07033602c188e1075bd931bf69991727f25083b 100644 (file)
@@ -40,6 +40,8 @@ namespace clitk
     this->m_SourceToAxis = 1000.0;
     this->m_EdgePaddingValue = itk::NumericTraits<OutputPixelType>::Zero;//density images
     this->m_RigidTransformMatrix.SetIdentity();
+    this->m_PanelShift[0] = 0.;
+    this->m_PanelShift[1] = 0.;
 
     //Parameters for output
     this->m_OutputSpacing.Fill(1);
@@ -221,7 +223,7 @@ namespace clitk
   BackProjectImageFilter<InputImageType, OutputImageType>
   ::CalculateProjectionMatrix( void )
   {
-    InputSpacingType inputSpacing=this->GetInput()->GetSpacing();
+    //InputSpacingType inputSpacing=this->GetInput()->GetSpacing();
     
     // Projection on YZ plane+pixelTrans
     itk::Matrix<double,3,4> temp;
@@ -323,7 +325,6 @@ namespace clitk
     iPoint.Fill(itk::NumericTraits<double>::Zero);
     OutputIndexType oIndex;
     ContinuousInputIndexType iIndex;
-    InputSizeType inputSize=inputPtr->GetLargestPossibleRegion().GetSize();
 
     //Get the first output coordinate
     oIndex=iterator.GetIndex();//costly but only once a thread
@@ -334,8 +335,8 @@ namespace clitk
        
     //Compute the first input coordinate (invert Y/X)
     homInputPoint= (m_ProjectionMatrix * homOutputPoint);
-    iPoint[0]=-homInputPoint[0]/homInputPoint[2];
-    iPoint[1]=homInputPoint[1]/homInputPoint[2];
+    iPoint[0]=-homInputPoint[0]/homInputPoint[2] + m_PanelShift[0];
+    iPoint[1]=homInputPoint[1]/homInputPoint[2] + m_PanelShift[1];
 
     typedef itk::LinearInterpolateImageFunction< InputImageType, double > InterpolatorType;
     typename InterpolatorType::Pointer interpolator = InterpolatorType::New();