00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxKerNgbNormCorrelation_h
00012 #define HxKerNgbNormCorrelation_h
00013
00014
00028 template <class ArithT, class ResultT>
00029 class HxKerNgbNormCorrelation
00030 {
00031 public:
00032
00034 typedef HxTagLoop IteratorCategory;
00035
00037 typedef HxTag2Phase PhaseCategory;
00038
00039
00041 HxKerNgbNormCorrelation(HxTagList& tags);
00042
00044 ~HxKerNgbNormCorrelation();
00045
00047 HxSizes size();
00048
00050 void init(int ix, int iy, ArithT imVal);
00051
00053 void next(int x, int y, ArithT pixV, ArithT maskV);
00054
00056 void init2(int ix, int iy, ArithT imVal);
00057
00059 void next2(int x, int y, ArithT pixV, ArithT maskV);
00060
00062 ResultT result();
00063
00065 static HxString className();
00066
00067 private:
00068 int _num;
00069 ResultT _fBar;
00070 ResultT _wBar;
00071 ResultT _sumFW;
00072 ResultT _sumFSqr;
00073 ResultT _sumWSqr;
00074
00075 HxSizes _ngbSize;
00076 };
00077
00078 #ifdef INC_TEMPLATE_SRC
00079 #include "HxKerNgbNormCorrelation.c"
00080 #endif
00081
00082 #endif