diff --git a/Modules/Compatibility/Deprecated/include/itkVectorResampleImageFilter.hxx b/Modules/Compatibility/Deprecated/include/itkVectorResampleImageFilter.hxx index 5b03d599c38..f6c074f0b8f 100644 --- a/Modules/Compatibility/Deprecated/include/itkVectorResampleImageFilter.hxx +++ b/Modules/Compatibility/Deprecated/include/itkVectorResampleImageFilter.hxx @@ -114,7 +114,6 @@ VectorResampleImageFilter PointType inputPoint; // Coordinates of current input pixel using ContinuousIndexType = ContinuousIndex; - ContinuousIndexType inputIndex; // Doc says this only works for VectorImage, but Image implementation says otherwise... const unsigned int numberOfComponents = this->GetInput()->GetNumberOfComponentsPerPixel(); @@ -131,7 +130,8 @@ VectorResampleImageFilter // Compute corresponding input pixel position inputPoint = m_Transform->TransformPoint(outputPoint); - inputPtr->TransformPhysicalPointToContinuousIndex(inputPoint, inputIndex); + const ContinuousIndexType inputIndex = + inputPtr->template TransformPhysicalPointToContinuousIndex(inputPoint); // Evaluate input at right position and copy to the output if (m_Interpolator->IsInsideBuffer(inputIndex)) diff --git a/Modules/Core/ImageFunction/include/itkBSplineInterpolateImageFunction.h b/Modules/Core/ImageFunction/include/itkBSplineInterpolateImageFunction.h index e4d6c6a18ee..f15f6b1908a 100644 --- a/Modules/Core/ImageFunction/include/itkBSplineInterpolateImageFunction.h +++ b/Modules/Core/ImageFunction/include/itkBSplineInterpolateImageFunction.h @@ -180,9 +180,9 @@ class ITK_TEMPLATE_EXPORT BSplineInterpolateImageFunction : public InterpolateIm CovariantVectorType EvaluateDerivative(const PointType & point) const { - ContinuousIndexType index; + const ContinuousIndexType index = + this->GetInputImage()->template TransformPhysicalPointToContinuousIndex(point); - this->GetInputImage()->TransformPhysicalPointToContinuousIndex(point, index); // No thread info passed in, so call method that doesn't need thread ID. return (this->EvaluateDerivativeAtContinuousIndex(index)); } @@ -222,9 +222,8 @@ class ITK_TEMPLATE_EXPORT BSplineInterpolateImageFunction : public InterpolateIm void EvaluateValueAndDerivative(const PointType & point, OutputType & value, CovariantVectorType & deriv) const { - ContinuousIndexType index; - - this->GetInputImage()->TransformPhysicalPointToContinuousIndex(point, index); + const ContinuousIndexType index = + this->GetInputImage()->template TransformPhysicalPointToContinuousIndex(point); // No thread info passed in, so call method that doesn't need thread ID. this->EvaluateValueAndDerivativeAtContinuousIndex(index, value, deriv); diff --git a/Modules/Core/ImageFunction/include/itkImageFunction.h b/Modules/Core/ImageFunction/include/itkImageFunction.h index 09141df678d..a1ed4763aff 100644 --- a/Modules/Core/ImageFunction/include/itkImageFunction.h +++ b/Modules/Core/ImageFunction/include/itkImageFunction.h @@ -191,7 +191,7 @@ class ITK_TEMPLATE_EXPORT ImageFunction : public FunctionBaseTransformPhysicalPointToContinuousIndex(point, cindex); + cindex = m_Image->template TransformPhysicalPointToContinuousIndex(point); } /** Convert continuous index to nearest index. */ diff --git a/Modules/Nonunit/Review/test/itkDiscreteGaussianDerivativeImageFunctionTest.cxx b/Modules/Nonunit/Review/test/itkDiscreteGaussianDerivativeImageFunctionTest.cxx index 1e019e05a19..001c8568486 100644 --- a/Modules/Nonunit/Review/test/itkDiscreteGaussianDerivativeImageFunctionTest.cxx +++ b/Modules/Nonunit/Review/test/itkDiscreteGaussianDerivativeImageFunctionTest.cxx @@ -138,9 +138,7 @@ itkDiscreteGaussianDerivativeImageFunctionTestND(int argc, char * argv[]) out.GoToBegin(); using PointType = typename GaussianDerivativeImageFunctionType::PointType; - PointType point; - using ContinuousIndexType = typename GaussianDerivativeImageFunctionType::ContinuousIndexType; - ContinuousIndexType cindex; + PointType point; const unsigned long nop = inputImage->GetRequestedRegion().GetNumberOfPixels(); unsigned long pixelNumber = 0; while (!it.IsAtEnd()) @@ -157,8 +155,12 @@ itkDiscreteGaussianDerivativeImageFunctionTestND(int argc, char * argv[]) } else { + using ContinuousIndexType = typename GaussianDerivativeImageFunctionType::ContinuousIndexType; + using ContinuousIndexValueType = typename ContinuousIndexType::ValueType; + inputImage->TransformIndexToPhysicalPoint(it.GetIndex(), point); - inputImage->TransformPhysicalPointToContinuousIndex(point, cindex); + const ContinuousIndexType cindex = + inputImage->template TransformPhysicalPointToContinuousIndex(point); out.Set(function->EvaluateAtContinuousIndex(cindex)); } ++it; diff --git a/Modules/Nonunit/Review/test/itkDiscreteGradientMagnitudeGaussianImageFunctionTest.cxx b/Modules/Nonunit/Review/test/itkDiscreteGradientMagnitudeGaussianImageFunctionTest.cxx index faec402dd90..aa68bc58636 100644 --- a/Modules/Nonunit/Review/test/itkDiscreteGradientMagnitudeGaussianImageFunctionTest.cxx +++ b/Modules/Nonunit/Review/test/itkDiscreteGradientMagnitudeGaussianImageFunctionTest.cxx @@ -139,9 +139,7 @@ itkDiscreteGradientMagnitudeGaussianImageFunctionTestND(int argc, char * argv[]) out.GoToBegin(); using PointType = typename DiscreteGradientMagnitudeGaussianFunctionType::PointType; - PointType point; - using ContinuousIndexType = typename DiscreteGradientMagnitudeGaussianFunctionType::ContinuousIndexType; - ContinuousIndexType cindex; + PointType point; const unsigned long nop = inputImage->GetRequestedRegion().GetNumberOfPixels(); unsigned long pixelNumber = 0; while (!it.IsAtEnd()) @@ -158,8 +156,12 @@ itkDiscreteGradientMagnitudeGaussianImageFunctionTestND(int argc, char * argv[]) } else { + using ContinuousIndexType = typename DiscreteGradientMagnitudeGaussianFunctionType::ContinuousIndexType; + using ContinuousValueIndexType = typename ContinuousIndexType::ContinuousIndexType; + inputImage->TransformIndexToPhysicalPoint(it.GetIndex(), point); - inputImage->TransformPhysicalPointToContinuousIndex(point, cindex); + const ContinuousIndexType cindex = + inputImage->TransformPhysicalPointToContinuousIndex(point); out.Set(function->EvaluateAtContinuousIndex(cindex)); } ++it; diff --git a/Modules/Nonunit/Review/test/itkDiscreteHessianGaussianImageFunctionTest.cxx b/Modules/Nonunit/Review/test/itkDiscreteHessianGaussianImageFunctionTest.cxx index 27dae98cea4..fe02807825b 100644 --- a/Modules/Nonunit/Review/test/itkDiscreteHessianGaussianImageFunctionTest.cxx +++ b/Modules/Nonunit/Review/test/itkDiscreteHessianGaussianImageFunctionTest.cxx @@ -132,9 +132,7 @@ itkDiscreteHessianGaussianImageFunctionTestND(int argc, char * argv[]) IteratorType outIter(output, output->GetRequestedRegion()); using PointType = typename HessianGaussianImageFunctionType::PointType; - PointType point; - using ContinuousIndexType = typename HessianGaussianImageFunctionType::ContinuousIndexType; - ContinuousIndexType cindex; + PointType point; const unsigned long nop = reader->GetOutput()->GetRequestedRegion().GetNumberOfPixels(); unsigned long pixelNumber = 0; while (!it.IsAtEnd()) @@ -150,8 +148,12 @@ itkDiscreteHessianGaussianImageFunctionTestND(int argc, char * argv[]) } else { + using ContinuousIndexType = typename HessianGaussianImageFunctionType::ContinuousIndexType; + using ContinuousIndexValueType = typename ContinuousIndexType::ValueType; + reader->GetOutput()->TransformIndexToPhysicalPoint(it.GetIndex(), point); - reader->GetOutput()->TransformPhysicalPointToContinuousIndex(point, cindex); + const ContinuousIndexType cindex = + reader->GetOutput()->TransformPhysicalPointToContinuousIndex(point); hessian = function->EvaluateAtContinuousIndex(cindex); }