00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkBSplineInterpolateFilter_h
00012 #define __mitkBSplineInterpolateFilter_h
00013
00014 #include "mitkInterpolateFilter.h"
00015
00016
00029
00030 class MITK_REGISTRATION_API mitkBSplineInterpolateFilter : public mitkInterpolateFilter
00031 {
00032 public:
00033 MITK_TYPE(mitkBSplineInterpolateFilter, mitkInterpolateFilter)
00034 virtual void PrintSelf(ostream &os);
00035
00040 mitkBSplineInterpolateFilter(unsigned int splineDegree);
00041
00045 mitkBSplineInterpolateFilter();
00046
00047 void SetSplineDegree(unsigned int s) { m_SplineDegree = s; }
00048
00049 protected:
00050 virtual ~mitkBSplineInterpolateFilter();
00051 virtual void _interpolation(const ScalarParameterType* index, ScalarPixelType* value);
00052 virtual void _interpolation(const ScalarParameterType* index, ScalarPixelType& value);
00053 void _BSplineInterpolation(const ScalarParameterType* index, ScalarPixelType* value);
00054
00055 unsigned int i,j,k,ch;
00056 int indexGrid[3];
00057 int nIndex[3][10];
00058 ScalarParameterType dx[3];
00059 ScalarParameterType w[3][10];
00060 ScalarParameterType w0, w1, wd, w2, w4, t, t0, t1;
00061 ScalarPixelType neighbors[64];
00062
00063 unsigned int m_SplineDegree;
00064
00065 private:
00066 mitkBSplineInterpolateFilter(const mitkBSplineInterpolateFilter&);
00067 void operator = (const mitkBSplineInterpolateFilter&);
00068
00069 };
00070
00071
00072
00073
00074
00075
00076 #endif
00077