X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=itk%2FclitkVectorBSplineInterpolateImageFunctionWithLUT.txx;h=a237a35871b8866b2238c61eebea1e5386de4752;hb=a1ec529a24b721fcfb2c5725f95bcc2c9125b28d;hp=8ea6e0ab09041fa78dec8878c96d74c762c5942f;hpb=573d80d0f7a17607d2ee883c21c940c0ba020282;p=clitk.git diff --git a/itk/clitkVectorBSplineInterpolateImageFunctionWithLUT.txx b/itk/clitkVectorBSplineInterpolateImageFunctionWithLUT.txx index 8ea6e0a..a237a35 100644 --- a/itk/clitkVectorBSplineInterpolateImageFunctionWithLUT.txx +++ b/itk/clitkVectorBSplineInterpolateImageFunctionWithLUT.txx @@ -210,7 +210,7 @@ GetSampleIndexOfPixelPosition(const ContinuousIndexType & x, IndexType & Evaluat // Compute index in precomputed weights table TCoefficientType t2 = mSamplingFactors[l]*t1; - index[l] = (IndexValueType)lrint(t2); + index[l] = (IndexValueType)itk::Math::Floor(t2); // For even order : test if too close to 0.5 (but lower). In this // case : take the next coefficient @@ -245,7 +245,6 @@ typename VectorBSplineInterpolateImageFunctionWithLUT:: EvaluateAtContinuousIndex(const ContinuousIndexType & x) const { - // JV Compute BSpline weights if not up to date! Problem const: pass image as last // if (!mWeightsAreUpToDate) UpdatePrecomputedWeights(); // For shorter coding @@ -259,7 +258,7 @@ EvaluateAtContinuousIndex(const ContinuousIndexType & x) const indx = (long)vcl_floor(x[l]) - mSplineOrders[l] / 2 ; //this->m_SplineOrder / 2; evaluateIndex[l] = indx; } else { // Use this index calculation for even splineOrder - if (mSplineOrders[l] == 0) evaluateIndex[l] = (long)rint(x[l]); + if (mSplineOrders[l] == 0) evaluateIndex[l] = itk::Math::Round(x[l]); else { indx = (long)vcl_floor((x[l]+ 0.5)) - mSplineOrders[l] / 2; //this->m_SplineOrder / 2; evaluateIndex[l] = indx; @@ -359,7 +358,7 @@ EvaluateWeightsAtContinuousIndex(const ContinuousIndexType& x, const TCoeffici indx = (long)vcl_floor(x[l]) - mSplineOrders[l] / 2 ; //this->m_SplineOrder / 2; evaluateIndex[l] = indx; } else { // Use this index calculation for even splineOrder - if (mSplineOrders[l] == 0) evaluateIndex[l] = (long)rint(x[l]); + if (mSplineOrders[l] == 0) evaluateIndex[l] = itk::Math::Round(x[l]); else { indx = (long)vcl_floor((x[l]+ 0.5)) - mSplineOrders[l] / 2; //this->m_SplineOrder / 2; evaluateIndex[l] = indx;