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

HxImgFtorKernelNgb2d Class Template Reference

Instantiation of generic algorithm for kernel based neighborhood operations on 2D images. More...

#include <HxImgFtorKernelNgb2d.h>

Inheritance diagram for HxImgFtorKernelNgb2d::

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

Public Types

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


Public Methods

 HxImgFtorKernelNgb2d ()
 Constructor. More...

virtual ~HxImgFtorKernelNgb2d ()
 Destructor. More...

virtual bool probeOp (HxTagList &tags) const
 Probe for border size. 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 NgbT>
class HxImgFtorKernelNgb2d< DstImgSigT, SrcImgSigT, KerImgSigT, NgbT >

Instantiation of generic algorithm for kernel based neighborhood operations on 2D images.

Template parameters:


Member Typedef Documentation

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class NgbT>
typedef HxImgFtorKernelNgbKey HxImgFtorKernelNgb2d::KeyType
 

The key type of this class.

Reimplemented from HxImgFtorI3Cast.


Constructor & Destructor Documentation

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class NgbT>
HxImgFtorKernelNgb2d< DstImgSigT, SrcImgSigT, KerImgSigT, NgbT >::HxImgFtorKernelNgb2d   [inline]
 

Constructor.

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class NgbT>
HxImgFtorKernelNgb2d< DstImgSigT, SrcImgSigT, KerImgSigT, NgbT >::~HxImgFtorKernelNgb2d   [virtual]
 

Destructor.

00039 {
00040 }


Member Function Documentation

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class NgbT>
bool HxImgFtorKernelNgb2d< DstImgSigT, SrcImgSigT, KerImgSigT, NgbT >::probeOp HxTagList   tags const [virtual]
 

Probe for border size.

Reimplemented from HxImgFunctor.

00046 {
00047     NgbT ngb(tags);
00048     HxSizes borderSize = ngb.size() / HxSizes(2,2,2);
00049     HxAddTag<HxSizes>(tags, "borderSize", borderSize);
00050     return true;
00051 }

template<class DstImgSigT, class SrcImgSigT, class KerImgSigT, class NgbT>
void HxImgFtorKernelNgb2d< DstImgSigT, SrcImgSigT, KerImgSigT, NgbT >::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 HxFuncKernelNgbOp2dDispatch to dispatch the actual work.

Reimplemented from HxImgFtorI3Cast.

00062 {
00063     typedef HxKernel2d<Img3DataPtrType, typename KerImgSigT::ArithType> KernelType;
00064 
00065     NgbT        ngb(tags);
00066     KernelType  kernel(kerPtr, kerSize, tags);
00067 
00068     if (description) {
00069         HxString v(typename NgbT::IteratorCategory().toString());
00070         v += ", ";
00071         v += typename NgbT::PhaseCategory().toString();
00072         description->setVariation(v);
00073     }
00074 
00075     if (kerSize.inf(ngb.size()) != kerSize) {
00076         HxEnvironment::instance()->errorStream()
00077             << "HxImgFtorKernelNgb2d: kernel larger than neighbourhood"
00078             << STD_ENDL;
00079         HxEnvironment::instance()->flush();
00080         return;
00081     }
00082 
00083     HxFuncKernelNgbOp2dDispatch(dstPtr, srcPtr, dstSize, ngb, kernel);
00084 }


The documentation for this class was generated from the following files:
Generated on Mon Jan 27 15:49:03 2003 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001