Main Page   Class Overview   Pixels   Images   Geometry   Quick Index  

HxImageTem2d Class Template Reference

Template class for operations on 2D images. More...

#include <HxImageTem2d.h>

Inheritance diagram for HxImageTem2d::

HxImageTem HxImageData HxRcObject List of all members.

Public Methods

 HxImageTem2d (int width=1, int height=1)
 HxImageTem2d (size_t *sizes)
 HxImageTem2d (const HxImageTem2d &)
virtual ~HxImageTem2d ()
int width () const
int height () const
virtual DataPtrType dataPtrClone () const
virtual void neighbourhoodOp (const HxImageData *src, HxString ngbName, HxTagList &tags)
 Neighbourhood operation. More...

virtual void neighbourhoodOp (const HxImageData *src, const HxImageData *kernel, HxString ngbName, HxTagList &tags)
 Neighbourhood operation with kernel. More...

virtual void geometricOp2d (const HxImageData *arg, HxMatrix func, HxGeoIntType gi, HxVec3Double translate, HxValue background)
virtual HxImageDataprojectDomain (int dimension, int coordinate)
virtual void inverseProjectDomain (int dimension, int coordinate, const HxImageData *arg)
virtual void transpose (const HxImageData *src)
virtual void getValues (HxPointListConstIter first, HxPointListConstIter last, HxValueListBackInserter)
virtual HxValue sampleIdentMask (const HxImageData *mask, HxPoint p, HxSizes size, int label, HxString sFunc)
virtual void sampleIdentMask (const HxImageData *mask, HxPoint p, HxSizes size, int label, HxString sFunc, HxValueListBackInserter res)
virtual HxValue sampleWeightMask (const HxImageData *mask, HxPoint p, HxString sFunc)
virtual void getRgbPixels2d (int *pixels, HxString dispF, int bufWidth, int bufHeight, int VX, int VY, int VW, int VH, double SX, double SY, double scaleX, double scaleY, HxGeoIntType gi) const

Detailed Description

template<class ImageSigT>
class HxImageTem2d< ImageSigT >

Template class for operations on 2D images.


Member Function Documentation

template<class ImageSigT>
void HxImageTem2d< ImageSigT >::neighbourhoodOp const HxImageData   src,
HxString    ngbName,
HxTagList   tags
[virtual]
 

Neighbourhood operation.

Reimplemented from HxImageTem.

00537 {
00538     HxImgFtorNgbKey   funcKey(
00539                             signature().toString(),
00540                             src->signature().toString(), ngbName);
00541 
00542     typedef HxImgFtorI2 FunctorType;
00543 
00544     static HxImgFtorTableTem<FunctorType> funcTable;
00545     FunctorType* func = funcTable.find(funcKey);
00546 
00547     if (func) {
00548         HxSizes borderSize = func->minimumBorderSize(tags);
00549         HxSizes scratchSize = src->sizes() + borderSize * HxSizes(2, 2, 2);
00550         HxImageData* scratch = HxImgDataFactory::instance().makeImage(
00551                                             src->signature(), scratchSize);
00552         scratch->setPartImage(
00553                         src, HxPointInt(0, 0, 0),
00554                         src->sizes() - HxPointInt(1, 1, 1), borderSize);
00555         scratch->setBorder(borderSize, tags);
00556         HxAddTag<HxSizes>(tags, "borderSize", borderSize);
00557 
00558         func->callIt(this, scratch, tags);
00559         delete scratch;
00560     } else {
00561         HxEnvironment::instance()->errorStream()
00562             << "Can't find " << funcKey << STD_ENDL;
00563         HxEnvironment::instance()->flush();
00564     }
00565 }

template<class ImageSigT>
void HxImageTem2d< ImageSigT >::neighbourhoodOp const HxImageData   src,
const HxImageData   kernel,
HxString    ngbName,
HxTagList   tags
[virtual]
 

Neighbourhood operation with kernel.

Reimplemented from HxImageTem.

00572 {
00573     HxImgFtorKernelNgbKey   funcKey(
00574                                 signature().toString(),
00575                                 src->signature().toString(),
00576                                 kernel->signature().toString(),
00577                                 ngbName);
00578 
00579     typedef HxImgFtorI3 FunctorType;
00580 
00581     static HxImgFtorTableTem<FunctorType> funcTable;
00582     FunctorType* func = funcTable.find(funcKey);
00583 
00584     if (func) {
00585         HxAddTag(tags, "kernelSize", kernel->sizes());
00586         HxSizes borderSize = func->minimumBorderSize(tags);
00587         HxSizes scratchSize = src->sizes() + borderSize * HxSizes(2, 2, 2);
00588         HxImageData* scratch = HxImgDataFactory::instance().makeImage(
00589                                             src->signature(), scratchSize);
00590         scratch->setPartImage(
00591                         src, HxPointInt(0, 0, 0),
00592                         src->sizes() - HxPointInt(1, 1, 1), borderSize);
00593         scratch->setBorder(borderSize, tags);
00594         HxAddTag(tags, "borderSize", borderSize);
00595 
00596         func->callIt(this, scratch, kernel, tags);
00597         delete scratch;
00598     } else {
00599         HxEnvironment::instance()->errorStream()
00600             << "Can't find " << funcKey << STD_ENDL;
00601         HxEnvironment::instance()->flush();
00602     }
00603 }


The documentation for this class was generated from the following files:
Generated on Tue Jan 8 13:59:27 2002 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001