00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxImgFtorGenConv2dK1d_h
00012 #define HxImgFtorGenConv2dK1d_h
00013
00014 #include "HxSizes.h"
00015 #include "HxImgFtorGenConvK1dKey.h"
00016 #include "HxImgFtorI3Cast.h"
00017
00018 #include "HxTagList.h"
00019
00020
00024 template <class DstImgSigT, class SrcImgSigT, class KerImgSigT,
00025 class PixOpT, class RedOpT, class KernelT>
00026 class L_HXIMAGEREP HxImgFtorGenConv2dK1d
00027 : public HxImgFtorI3Cast<DstImgSigT, SrcImgSigT, KerImgSigT>
00028 {
00029
00030 public:
00031
00033 typedef HxImgFtorGenConvK1dKey KeyType;
00034
00036 typedef typename SrcImgSigT::DataPtrType SrcDataPtrType;
00037
00039 typedef typename KerImgSigT::DataPtrType KerDataPtrType;
00040
00041
00043 HxImgFtorGenConv2dK1d();
00044
00046 virtual ~HxImgFtorGenConv2dK1d();
00047
00048 protected:
00049
00054 virtual void doIt(DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00055 KerDataPtrType kerPtr,
00056 HxSizes dstSize, HxSizes srcSize, HxSizes kerSize,
00057 HxTagList &tags, HxImgFtorDescription* = 0);
00058 void convolutionX(
00059 DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00060 KerDataPtrType kerPtr, HxSizes dstSize,
00061 HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00062 void convolutionY(
00063 DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00064 KerDataPtrType kerPtr, HxSizes dstSize,
00065 HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00066 void convolutionXIp(
00067 DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00068 KerDataPtrType kerPtr, HxSizes dstSize,
00069 HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00070 void convolutionYIp(
00071 DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00072 KerDataPtrType kerPtr, HxSizes dstSize,
00073 HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00074
00075
00076 private:
00077 HxImgFtorGenConv2dK1d(const HxImgFtorGenConv2dK1d&);
00078 };
00079
00080 #ifdef INC_TEMPLATE_SRC
00081 #include "HxImgFtorGenConv2dK1d.c"
00082 #endif
00083
00084 #endif