X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=itk%2FitkBSplineInterpolateImageFunctionWithLUT.h;h=5ca614d9c35d493a487c7347be9111af3f339a87;hb=5f801bf0b07486889123e941d6913d4369dfc86f;hp=ffebb8650b29b68853e7eefbc2039545ef6bc423;hpb=0083c3fb2c66812489631c7551709d121de51625;p=clitk.git diff --git a/itk/itkBSplineInterpolateImageFunctionWithLUT.h b/itk/itkBSplineInterpolateImageFunctionWithLUT.h index ffebb86..5ca614d 100644 --- a/itk/itkBSplineInterpolateImageFunctionWithLUT.h +++ b/itk/itkBSplineInterpolateImageFunctionWithLUT.h @@ -1,27 +1,28 @@ +/*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv + + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://www.centreleonberard.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. + + It is distributed under dual licence + + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +===========================================================================**/ #ifndef ITKBSPLINEINTERPOLATEIMAGEFUNCTIONWITHLUT_H #define ITKBSPLINEINTERPOLATEIMAGEFUNCTIONWITHLUT_H -/* ========================================================================= - - @file itkBSplineInterpolateImageFunctionWithLUT.h - @author David Sarrut - - Copyright (c) - * CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). - All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. - * Léon Bérard cancer center, 28 rue Laënnec, 69373 Lyon cedex 08, France - * http://www.creatis.insa-lyon.fr/rio - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - -========================================================================= */ #include "itkBSplineWeightsCalculator.h" -//#include "clitkTimer.h" #include +#include "clitkCommon.h" + namespace itk { template < @@ -48,7 +49,7 @@ namespace itk { itkNewMacro(Self); /** Setting LUT sampling (one parameters by dimension or a single - one for all dim); Default is 10 (for each dim) **/ + one for all dim); Default is 20 (for each dim) **/ void SetLUTSamplingFactor(const int& s); void SetLUTSamplingFactors(const SizeType& s); @@ -60,27 +61,24 @@ namespace itk { void SetSplineOrders(const SizeType & SplineOrders); /** Set the input image. This must be set by the user. */ - virtual void SetInputImage(const TImageType * inputData); - //void SetOutputSpacing(const SpacingType & s); - //void SetInputImageIsCoefficient(bool inputIsCoef) { mInputIsCoef = inputIsCoef; } + virtual void SetInputImage(const TImageType * inputData) ITK_OVERRIDE; + + /** Evaluate the function at a ContinuousIndex position. + Overwritten for taking LUT into account (RP: multi-threading-compatible version, + the threadID is actually ignored) */ + virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType & index, unsigned int /* threadID */ ) const ITK_OVERRIDE + { + return this->EvaluateAtContinuousIndex( index ); + } /** Evaluate the function at a ContinuousIndex position. Overwritten for taking LUT into account */ - virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType & index ) const; + virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType & index ) const ITK_OVERRIDE; /** Static convenient functions to compute BSpline weights for various order, dimension, sampling ... **/ static void ComputeBlendingWeights(int dim, int order, int sampling, TCoefficientType * weights); - /** Timer giving computation time for coefficients computation **/ - // const clitk::Timer & GetCoefTimer() const { return mCoefficientTimer; } - - /** Get estimated error **/ - - double GetIntrinsicError() const { return *mIntrinsecError; } - long GetNumberOfError() const { return *mNumberOfError; } - double GetIntrinsicErrorMax() const { return *mIntrinsecErrorMax; } - protected: BSplineInterpolateImageFunctionWithLUT(); ~BSplineInterpolateImageFunctionWithLUT(){;} @@ -95,14 +93,6 @@ namespace itk { /** Sampling factors for LUT weights **/ SizeType mSamplingFactors; bool mWeightsAreUpToDate; - //SpacingType mOutputSpacing; - - double * mIntrinsecError; - double * mIntrinsecErrorMax; - long * mNumberOfError; - - //JV add iscoeff, and splineorders - // bool mInputIsCoef; SizeType mSplineOrders; // Filter to compute weights @@ -113,15 +103,6 @@ namespace itk { void UpdateWeightsProperties(); IndexType GetSampleIndexOfPixelPosition(const ContinuousIndexType & x, IndexType & EvaluateIndex) const; - // Timing options - // clitk::Timer mCoefficientTimer; - // clitk::Timer mLUTTimer; - bool mTimerEnabled; - - //JV threadsafety: everything on the stack - //std::vector mCorrectedSupportOffset; - //std::vector mCorrectedSupportIndex; - TCoefficientType * coef; }; // end class itkBSplineInterpolateImageFunctionWithLUT } // end namespace