|
| WarpOp (const core::Img32f &warpMap=core::Img32f(), core::scalemode mode=core::interpolateLIN, bool allowWarpMapScaling=true) |
| create a new WarpOp instance More...
|
|
| ~WarpOp () |
| Destructor. More...
|
|
void | setScaleMode (core::scalemode scaleMode) |
| Sets a new scalemode (either interpolateLIN or interpolateNN) More...
|
|
void | setWarpMap (const core::Img32f &warpMap) |
| Sets a new warp map. More...
|
|
void | setAllowWarpMapScaling (bool allow) |
| Sets the allow warp-map-scaling features. More...
|
|
void | setTryUseOpenCL (bool enabled) |
| sets wheter to use openCL internally More...
|
|
core::scalemode | getScaleMode () const |
| returns the current scalemode More...
|
|
const core::Img32f & | getWarpMap () const |
| returns the current warp map More...
|
|
bool | getAllowWarpMapScaling () const |
| returns whether warp map scaling is allowed More...
|
|
virtual void | apply (const core::ImgBase *src, core::ImgBase **dst) |
| virtual apply function More...
|
|
virtual void | apply (const core::ImgBase *operand1, core::ImgBase **dst)=0 |
| Import unaryOps apply function without destination image. More...
|
|
virtual const core::ImgBase * | apply (const core::ImgBase *src) |
| Import unaryOps apply function without destination image. More...
|
|
| UnaryOp () |
| Explicit empty constructor. More...
|
|
| UnaryOp (const UnaryOp &other) |
| Explicit copy constructor. More...
|
|
UnaryOp & | operator= (const UnaryOp &other) |
| Explicit declaration of the assignment operator. More...
|
|
virtual | ~UnaryOp () |
| Destructor. More...
|
|
virtual ICL_DEPRECATED void | applyMT (const core::ImgBase *operand1, core::ImgBase **dst, unsigned int nThreads) |
| apply function for multithreaded filtering (currently even slower than using one thread) More...
|
|
virtual const core::ImgBase * | apply (const core::ImgBase *src) |
| applys the filter usign an internal buffer as output image More...
|
|
void | operator() (const core::ImgBase *src, core::ImgBase **dst) |
| function operator (alternative for apply(src,dst) More...
|
|
const core::ImgBase * | operator() (const core::ImgBase *src) |
| function operator for the implicit destination apply(src) call More...
|
|
const core::ImgBase & | operator() (const core::ImgBase &src) |
| reference based function operator More...
|
|
void | setClipToROI (bool bClipToROI) |
| sets if the image should be clip to ROI or not More...
|
|
void | setCheckOnly (bool bCheckOnly) |
| sets if the destination image should be adapted to the source, or if it is only checked if it can be adapted. More...
|
|
bool | getClipToROI () const |
| returns the ClipToROI status More...
|
|
bool | getCheckOnly () const |
| returns the CheckOnly status More...
|
|
virtual void | setPropertyValue (const std::string &propertyName, const utils::Any &value) |
| sets value of a property (always call call_callbacks(propertyName) or Configurable::setPropertyValue) More...
|
|
virtual | ~Configurable () |
| virtual destructor More...
|
|
| Configurable (const Configurable &other) |
| Copy constructor. More...
|
|
Configurable & | operator= (const Configurable &other) |
| Assignment operator. More...
|
|
void | setConfigurableID (const std::string &ID) |
| sets the ID of this configurable More...
|
|
const std::string & | getConfigurableID () const |
| returns the configurables static ID More...
|
|
bool | isOrderedFlagSet () const |
| returns whether the ordered flag is set More...
|
|
void | deactivateProperty (const std::string &pattern) |
| adds an additional deativation pattern More...
|
|
void | deleteDeactivationPattern (const std::string &pattern) |
| removed a formerly added deactivation pattern More...
|
|
std::vector< std::string > | getPropertyListWithoutDeactivated () const |
| this returns a filtered list of properties (using all filters added by deactivateProperty) More...
|
|
virtual void | adaptProperty (const std::string &name, const std::string &newType, const std::string &newInfo, const std::string &newToolTip) |
| this function can be used to adapt a specific property afterwards More...
|
|
void | registerCallback (const Callback &cb) |
| add a callback for changed properties More...
|
|
void | removedCallback (const Callback &cb) |
| removes a callback that was registered before More...
|
|
void | syncChangesTo (Configurable *others, int num=1) |
| this can be used to let this instance also apply property changes to others More...
|
|
virtual std::vector< std::string > | getPropertyList () const |
| returns a list of All properties, that can be set using setProperty More...
|
|
virtual bool | supportsProperty (const std::string &propertyName) const |
| base implementation for property check (seaches in the property list) More...
|
|
virtual void | saveProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) const |
| writes all available properties into a file More...
|
|
virtual void | loadProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) |
| reads a camera config file from disc More...
|
|
virtual std::string | getPropertyType (const std::string &propertyName) const |
| get type of property More...
|
|
virtual std::string | getPropertyInfo (const std::string &propertyName) const |
| get information of a properties valid values More...
|
|
virtual Any | getPropertyValue (const std::string &propertyName) const |
| returns the current value of a property or a parameter More...
|
|
virtual std::string | getPropertyToolTip (const std::string &propertyName) const |
| returns the tooltip description for a given property More...
|
|
virtual int | getPropertyVolatileness (const std::string &propertyName) const |
| Returns whether this property may be changed internally. More...
|
|
|
typedef Function< void, const Property & > | Callback |
| Function type for changed properties. More...
|
|
static UnaryOp * | fromString (const std::string &definition) |
| Creates a UnaryOp instance from given string definition. More...
|
|
static std::string | getFromStringSyntax (const std::string &opSpecifier) |
| gives a string syntax description for given opSpecifier More...
|
|
static std::vector< std::string > | listFromStringOps () |
| returns a list of all supported OP_SPEC values for the fromString function More...
|
|
static void | applyFromString (const std::string &definition, const core::ImgBase *src, core::ImgBase **dst) |
| creates, applies and releases a UnaryOp defined by given definition string More...
|
|
static std::string | create_default_ID (const std::string &prefix) |
| this function can be used in subclasses to create a default ID More...
|
|
static Configurable * | get (const std::string &id) |
| returns configurable by given ID More...
|
|
static void | register_configurable_type (const std::string &classname, Function< Configurable * > creator) |
| registers a configurable type More...
|
|
static std::vector< std::string > | get_registered_configurables () |
| returns a list of all registered configurable classnames More...
|
|
static Configurable * | create_configurable (const std::string &classname) |
| creates a configurable by given name More...
|
|
static const std::vector< std::string > | EMPTY_VEC |
| used as shortcut – just an empty vector of std::strings More...
|
|
bool | prepare (core::ImgBase **ppoDst, core::depth eDepth, const utils::Size &imgSize, core::format eFormat, int nChannels, const utils::Rect &roi, utils::Time timestamp=utils::Time::null) |
|
virtual bool | prepare (core::ImgBase **ppoDst, const core::ImgBase *poSrc) |
| check+adapt destination image to properties of given source image More...
|
|
virtual bool | prepare (core::ImgBase **ppoDst, const core::ImgBase *poSrc, core::depth eDepth) |
|
void | addProperty (const std::string &name, const std::string &type, const std::string &info, const Any &value=Any(), const int volatileness=0, const std::string &tooltip=std::string()) |
| This can be used by derived classes to store supported properties in the internal list. More...
|
|
void | addChildConfigurable (Configurable *configurable, const std::string &childPrefix="") |
| This adds another configurable as child. More...
|
|
void | removeChildConfigurable (Configurable *configurable) |
| removes the given child configurable More...
|
|
Property & | prop (const std::string &propertyName) |
| this CAN be used e.g. to store a property value in internal property-list More...
|
|
const Property & | prop (const std::string &propertyName) const |
| this CAN be used e.g. to store a property value in internal property-list More...
|
|
| Configurable (const std::string &ID="", bool ordered=true) |
| create this configurable with given ID More...
|
|
void | call_callbacks (const std::string &propertyName, const Configurable *caller) const |
| calls all registered callbacks More...
|
|
utils::MultiThreader * | m_poMT |
|
std::vector< Callback > | callbacks |
| internally managed list of callbacks More...
|
|
Operator that remaps an image with given look-up map.
Overview
A 'Warping' operation on images is any operation, that works on the local domain of the image i.e. it moves the images pixel locations. Special warping routines like affine operations (see AffineOp) can be performed using a functional rule that is applied on each destination pixel to determine it's corresponding source pixels (using the AffineOp example again, this function might be e.g. an affine matrix multiplication). If the mapping function gets more complex (e.g. in case of camera lens distortion), computation might become too slow, however computational performance even for most complex mappings can be limited by pre-calculating a so-called warp-table (a 2-channel 2D-look-up-table, that contains the result of the mapping for each pixel). Once having obtained such a LUT, a WarpOp will help to apply the table lookup operation conveniently and safely.
ROI-Support
Currently this Op does not provide ROI handling (although used IPP-functions do)
IPP Acceleration
Support is purely optional and only defined in case of depth8u or depth32f input images
Performance
As already mentioned, the operation performance does not depend on the mapping function at all. Hence there're only few parameters, that influence the apply time of a WarpOp instance:
- image depth (we expect icl8u's to be a bit faster then the other types)
- image size (warping is linear wrt the number of image pixels)
- interpolation method
Here's a short list of benchmarks. For benchmarking your system, you can use the icl-warp-op-test application.
System: 2.0 GHz Core2Duo
Size: 640x480 (VGA)
Build-flags: -O4 -march=native -funroll-loops
interpolation: NN LINEAR
--------------------------------------------
- depth8u: 8ms(IPP) 13ms(IPP)
- depth16s: 42ms 79ms
- depth32s: 46ms 79ms
- depth32f: 13ms(IPP) 20ms(IPP)
- depth64f: 54ms 92ms