#include <HxImgFtorGenConv2dK1d.h>
Inheritance diagram for HxImgFtorGenConv2dK1d::
Public Types | |
typedef HxImgFtorGenConvK1dKey | KeyType |
The key type of this class. More... | |
typedef SrcImgSigT::DataPtrType | SrcDataPtrType |
The data pointer type of the source image. More... | |
typedef KerImgSigT::DataPtrType | KerDataPtrType |
The data pointer type of the kernel image. More... | |
Public Methods | |
HxImgFtorGenConv2dK1d () | |
Constructor. More... | |
virtual | ~HxImgFtorGenConv2dK1d () |
Destructor. More... | |
Protected Methods | |
virtual void | doIt (DstDataPtrType dstPtr, SrcDataPtrType srcPtr, KerDataPtrType kerPtr, HxSizes dstSize, HxSizes srcSize, HxSizes kerSize, HxTagList &tags, HxImgFtorDescription *=0) |
Calls convolutionX, convolutionY, convolutionXIp, or convolutionYIp to do the actual work based on the "dimension" and "inplace" tags. More... | |
void | convolutionX (DstDataPtrType dstPtr, SrcDataPtrType srcPtr, KerDataPtrType kerPtr, HxSizes dstSize, HxSizes srcSize, HxSizes kerSize, HxTagList &tags) |
void | convolutionY (DstDataPtrType dstPtr, SrcDataPtrType srcPtr, KerDataPtrType kerPtr, HxSizes dstSize, HxSizes srcSize, HxSizes kerSize, HxTagList &tags) |
void | convolutionXIp (DstDataPtrType dstPtr, SrcDataPtrType srcPtr, KerDataPtrType kerPtr, HxSizes dstSize, HxSizes srcSize, HxSizes kerSize, HxTagList &tags) |
void | convolutionYIp (DstDataPtrType dstPtr, SrcDataPtrType srcPtr, KerDataPtrType kerPtr, HxSizes dstSize, HxSizes srcSize, HxSizes kerSize, HxTagList &tags) |
|
The key type of this class.
Reimplemented from HxImgFtorI3Cast. |
|
The data pointer type of the source image.
|
|
The data pointer type of the kernel image.
|
|
Constructor.
00024 : HxImgFtorI3Cast<DstImgSigT, SrcImgSigT, KerImgSigT>( 00025 HxImgFtorGenConvK1dKey(HxClassName<DstImgSigT>(), 00026 HxClassName<SrcImgSigT>(), HxClassName<KerImgSigT>(), 00027 HxClassName<PixOpT>(), HxClassName<RedOpT>(), 00028 HxClassName<KernelT>())) 00029 { 00030 #ifdef CD_TRACE 00031 HxEnvironment::instance()->outputStream() 00032 << "HxImgFtorGenConv2dK1d::HxImgFtorGenConv2dK1d()" << STD_ENDL; 00033 #endif 00034 } |
|
Destructor.
00040 { 00041 #ifdef CD_TRACE 00042 HxEnvironment::instance()->outputStream() 00043 << "HxImgFtorGenConv2dK1d::~HxImgFtorGenConv2dK1d()" << STD_ENDL; 00044 #endif 00045 } |
|
Calls convolutionX, convolutionY, convolutionXIp, or convolutionYIp to do the actual work based on the "dimension" and "inplace" tags.
00056 { 00057 int dimension = HxGetTag<int>(tags, "dimension"); 00058 bool inplace = HxGetTag(tags, "inplace", false); 00059 00060 if (inplace && description) 00061 description->setVariation("inplace"); 00062 00063 switch (dimension) { 00064 case 1 : 00065 if (inplace) 00066 convolutionXIp( 00067 dstPtr, srcPtr, kerPtr, dstSize, srcSize, kerSize, tags); 00068 else 00069 convolutionX( 00070 dstPtr, srcPtr, kerPtr, dstSize, srcSize, kerSize, tags); 00071 break; 00072 case 2 : 00073 if (inplace) 00074 convolutionYIp( 00075 dstPtr, srcPtr, kerPtr, dstSize, srcSize, kerSize, tags); 00076 else 00077 convolutionY( 00078 dstPtr, srcPtr, kerPtr, dstSize, srcSize, kerSize, tags); 00079 break; 00080 default : 00081 HxEnvironment::instance()->errorStream() 00082 << "Generalized convolution (2d image, 1d kernel): " 00083 << "cannot execute convolution in dimension " << dimension 00084 << STD_ENDL; 00085 HxEnvironment::instance()->flush(); 00086 } 00087 } |