Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxImgFtorGenConv3dK1d Class Template Reference

Instantiation of generic algorithm for generalized convolution operations on 3d images with a 1d kernel. More...

#include <HxImgFtorGenConv3dK1d.h>

Inheritance diagram for HxImgFtorGenConv3dK1d::

HxImgFtorI3Cast< DstImgSigT, SrcImgSigT, KerImgSigT > HxImgFtorI3 HxImgFunctor List of all members.

Public Types

typedef HxImgFtorGenConvK1dKey KeyType
 The key type of this class. More...


Public Methods

 HxImgFtorGenConv3dK1d ()
 Constructor. More...

virtual ~HxImgFtorGenConv3dK1d ()
 Destructor. More...


Protected Methods

virtual void doIt (Img1DataPtrType dstPtr, Img2DataPtrType srcPtr, Img3DataPtrType kerPtr, HxSizes dstSize, HxSizes srcSize, HxSizes kerSize, HxTagList &tags, HxImgFtorDescription *description=0)
 Do it. More...


Detailed Description

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class PixOpT, class RedOpT, class KernelT>
class HxImgFtorGenConv3dK1d< DstImgSigT, SrcImgSigT, KerImgSigT, PixOpT, RedOpT, KernelT >

Instantiation of generic algorithm for generalized convolution operations on 3d images with a 1d kernel.

Template parameters:


Member Typedef Documentation

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class PixOpT, class RedOpT, class KernelT>
typedef HxImgFtorGenConvK1dKey HxImgFtorGenConv3dK1d::KeyType
 

The key type of this class.

Reimplemented from HxImgFtorI3Cast.


Constructor & Destructor Documentation

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class PixOpT, class RedOpT, class KernelT>
HxImgFtorGenConv3dK1d< DstImgSigT, SrcImgSigT, KerImgSigT, PixOpT, RedOpT, KernelT >::HxImgFtorGenConv3dK1d   [inline]
 

Constructor.

00033         : HxImgFtorI3Cast<DstImgSigT, SrcImgSigT, KerImgSigT>(
00034             HxImgFtorGenConvK1dKey(
00035                 HxClassName<DstImgSigT>(), HxClassName<SrcImgSigT>(),
00036                 HxClassName<KerImgSigT>(),
00037                 HxClassName<PixOpT>(), HxClassName<RedOpT>(),
00038                 HxClassName<KernelT>()))
00039 {
00040 #ifdef CD_TRACE
00041     HxEnvironment::instance()->outputStream()
00042         << "HxImgFtorGenConv3dK1d::HxImgFtorGenConv3dK1d()" << STD_ENDL;
00043 #endif
00044 }

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class PixOpT, class RedOpT, class KernelT>
HxImgFtorGenConv3dK1d< DstImgSigT, SrcImgSigT, KerImgSigT, PixOpT, RedOpT, KernelT >::~HxImgFtorGenConv3dK1d   [virtual]
 

Destructor.

00051 {
00052 #ifdef CD_TRACE
00053     HxEnvironment::instance()->outputStream()
00054         << "HxImgFtorGenConv3dK1d::~HxImgFtorGenConv3dK1d()" << STD_ENDL;
00055 #endif
00056 }


Member Function Documentation

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class PixOpT, class RedOpT, class KernelT>
void HxImgFtorGenConv3dK1d< DstImgSigT, SrcImgSigT, KerImgSigT, PixOpT, RedOpT, KernelT >::doIt Img1DataPtrType    dstPtr,
Img2DataPtrType    srcPtr,
Img3DataPtrType    kerPtr,
HxSizes    dstSize,
HxSizes    srcSize,
HxSizes    kerSize,
HxTagList   tags,
HxImgFtorDescription   description = 0
[protected, virtual]
 

Do it.

Parameters:
dstPtr  Output image: IS = dstSize, IBS = 0
srcPtr  Input image: IS = srcSize, IBS = taglist(borderSize)
kerPtr  Input image, IS = kerSize, IBS = 0
Calls HxFuncGenConv3dK1dDispatch to dispatch the actual work.

Reimplemented from HxImgFtorI3Cast.

00068 {
00069     int dimension = HxGetTag<int>(tags, "dimension");
00070 
00071     HxSizes borderSize = HxGetTag(tags, "borderSize", HxSizes(0,0,0));
00072     int borderWidth = borderSize.x();
00073     int borderHeight = borderSize.y();
00074     int borderDepth = borderSize.z();
00075     int kerWidth = kerSize.x();
00076     if (dimension == 1) {
00077         if (borderWidth == 0)
00078             borderWidth = kerWidth / 2;
00079         srcPtr.incXYZ(0, borderHeight, borderDepth);
00080     }
00081     if (dimension == 2) {
00082         if (borderHeight == 0)
00083             borderHeight = kerWidth / 2;
00084         srcPtr.incXYZ(borderWidth, 0, borderDepth);
00085     }
00086     if (dimension == 3) {
00087         if (borderDepth == 0)
00088             borderDepth = kerWidth / 2;
00089         srcPtr.incXYZ(borderWidth, borderHeight, 0);
00090     }
00091 
00092     PixOpT pixOp(tags);
00093     RedOpT redOp(tags);
00094     KernelT kernel(kerPtr, kerSize, tags);
00095 
00096     HxFuncGenConv3dK1dDispatch(dstPtr, srcPtr, kernel, dstSize,
00097                                pixOp, redOp, dimension);
00098 }


The documentation for this class was generated from the following files:
Generated on Tue Feb 3 14:18:58 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001