#include <HxImageTem2d.h>
Inheritance diagram for HxImageTem2d::
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 HxImageData * | projectDomain (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 |
|
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 } |
|
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 } |