|
Base class for image processing functions. More...
#include <ImageOp.h>
Public Member Functions | |
virtual void | process (const ImageFrame &src, Image &dst) const |
Main interface. Typically splits processing to each channel. More... | |
virtual void | process (const ImageFrame &src, const ImageFrame &srcWeight, Image &dst, Image &dstWeight) const |
virtual void | process (const ImageTray< const Channel > &src, ImageTray< Image > &dst, bool checkOverlap=true) const |
Run the operator on a series of images. Geometry and type may be changed. UNDER CONSTR. More... | |
virtual void | traverseChannels (const ImageTray< const Channel > &src, ImageTray< Channel > &dst) const |
virtual void | traverseChannel (const Channel &src, Channel &dst) const |
Apply to single channel. | |
virtual void | traverseChannel (const Channel &src, const Channel &srcAlpha, Channel &dst, Channel &dstAlpha) const |
Apply to single channel with alpha. | |
virtual void | getDstConf (const ImageConf &src, ImageConf &dst) const |
Given source image, determine respective dest image configuration. More... | |
virtual void | makeCompatible (const ImageConf &src, Image &dst) const |
Depending on the operator, modifies the geometry and type of dst. More... | |
virtual void | makeCompatible2 (const ImageFrame &src1, const ImageFrame &src2, Image &dst) const |
Modifies the geometry and type of dst to fit the computation result. | |
virtual void | help (std::ostream &ostr=std::cout) const |
Prints name, description and parameters using BeanLike::toOStr(). Virtual, so derived classes may extend output. | |
Public Member Functions inherited from ImageMod | |
virtual int | srcAlpha () const |
Tell if alpha channel(s) is required in input. More... | |
virtual void | process (Image &dst) const |
Run this modifier for an image. More... | |
virtual void | traverseChannels (ImageTray< Channel > &dst) const |
Run this modifier for a set of channels. More... | |
virtual void | traverseChannel (Channel &dst) const |
Run this modifier for an image frame. More... | |
virtual void | traverseChannel (Channel &dst, Channel &dstAlpha) const |
Run this modifier for an image frame. More... | |
virtual void | traverseChannels (ImageFrame &dst) const |
Converts dst to ImageTray<Channel> and calls traverseFrame(ImageTray<Channel> &) . | |
Public Member Functions inherited from BeanLike | |
virtual const std::string & | getName () const |
Return the name of an instance. | |
virtual const std::string & | getDescription () const |
Return a brief description. | |
bool | hasParameters () const |
template<class F > | |
F | getParameter (const std::string &p) const |
Gets a single parameter. | |
const ReferenceMap & | getParameters () const |
ReferenceMap & | getParameters () |
template<class F > | |
void | setParametersFromEntries (const F &args) |
void | setParameters (std::initializer_list< Variable::init_pair_t > args) |
Grants access to (if above hidden) | |
virtual void | setParameters (const std::string &p, char assignmentSymbol='=', char separatorSymbol=0) |
Sets comma-separated parameters in a predetermined order "a,b,c" or by specifing them "b=2". More... | |
template<class T > | |
void | setParameters (const std::map< std::string, T > &args) |
Set parameters. | |
template<class T > | |
void | setParameters (const SmartMap< T > &args) |
Set parameters. | |
void | setParameter (const std::string &p, const Castable &value) |
Sets a single parameter. | |
template<class T > | |
void | setParameter (const std::string &p, const VariableT< T > &value) |
template<class F > | |
void | setParameter (const std::string &p, const F &value) |
Sets a single parameter. More... | |
template<class F > | |
void | setParameter (const std::string &p, std::initializer_list< F > value) |
Sets a single parameter. | |
BeanLike & | operator= (const BeanLike &b) |
virtual std::ostream & | toStream (std::ostream &ostr, bool compact=true) const |
BeanLike (const BeanLike &b) | |
BeanLike (const std::string &name, const std::string &description="") | |
Protected Member Functions | |
ImageOp (const std::string &name=__FUNCTION__, const std::string &description="") | |
ImageOp (const ImageOp &op) | |
virtual bool | processOverlappingWithTemp (const ImageFrame &src, Image &dst) const |
virtual bool | processOverlappingWithTemp (const ImageTray< const Channel > &src, ImageTray< Image > &dst) const |
bool | traverseOverlappingWithTemp (const Channel &src, Channel &dst) const |
bool | traverseOverlappingWithTemp (const Channel &src, const Channel &srcWeight, Channel &dst, Channel &dstWeight) const |
void | traverseChannelsEqually (const ImageTray< const Channel > &src, ImageTray< Channel > &dst) const |
Calls processWithTemp() if the frames overlap. More... | |
void | traverseChannelsRepeated (const ImageTray< const Channel > &src, ImageTray< Channel > &dst) const |
Recycle channels until all dst channels completed. | |
void | traverseChannelsSeparately (const ImageTray< const Channel > &src, ImageTray< Channel > &dst) const |
Process each (src,dst) channel pair independently. Raise error if their counts differ. More... | |
void | traverseAsChannelTrays (const ImageFrame &src, ImageFrame &dst) const |
Redirect to processing as trays. This is the opposite of processChannels...() functions. | |
void | traverseAsChannelTrays (const ImageFrame &src, const ImageFrame &srcWeight, ImageFrame &dst, ImageFrame &dstWeight) const |
Redirect to processing as trays. This is the opposite of processChannels...() functions. | |
virtual void | initializeParameters (const ImageFrame &src, const ImageFrame &dst) const |
Set applicable internal parameters before calling traverse(). | |
virtual void | initializeParameters (const ImageFrame &src, const ImageFrame &src2, const ImageFrame &dst) const |
Set applicable internal parameters before calling traverse(). | |
Protected Member Functions inherited from ImageMod | |
ImageMod (const std::string &name=__FUNCTION__, const std::string &description="") | |
ImageMod (const ImageMod &op) | |
virtual void | processChannelsSeparately (ImageTray< Channel > &dst) const |
Run this modifier by calling traverseChannel(Channel &) for each image. | |
virtual void | initialize (Image &dst) const |
Modifies the geometry and the type of dst such that traverseChannel(Channel &) can be called. | |
virtual void | initializeAlpha (const Image &srcAlpha, Image &dstAlpha) const |
Modifies the geometry and the type of dst such that traverseChannel(Channel &) can be called. | |
Protected Member Functions inherited from BeanLike | |
virtual void | storeLastArguments (const std::string &p) |
Called after setParameters() | |
virtual void | updateBean () const |
Called after setParameters() | |
Static Protected Member Functions | |
static void | adaptCoordinateHandler (const Channel &src, CoordinateHandler2D &handler) |
Additional Inherited Members | |
Public Attributes inherited from ImageMod | |
bool | physicalScale |
Protected Attributes inherited from BeanLike | |
const std::string | name |
const std::string | description |
ReferenceMap | parameters |
Base class for image processing functions.
TODO:
|
inlineprotected |
weight_supported | - not supported (0), flexibly supported (1) or required (2) |
tmp_required | - temporary image needed, if src and dst are same or overlapping. |
This is needed, otherwise parameters(parameters) is called through BeanLike(BeanLike).
Given source image, determine respective dest image configuration.
This default implementations
Reimplemented in ResizeOp, QualityOp, PixelVectorOp, DistanceTransformFillOp< T >, DistanceTransformFillOp< DistanceModelExponential >, DistanceTransformFillOp< DistanceModelLinear >, TransposeOp, SegmentStatisticsOp, SegmentAreaOp< S, D, T >, RecomposeOp, QuadTreeOp, PaletteOp, BinaryFunctorOp< F >, UnaryFunctorOp< F, NORM, SIGN >, UnaryFunctorOp< drain::FuzzyStep< double > >, UnaryFunctorOp< CopyFunctor >, FastOpticalFlow2Op, FastOpticalFlowOp, FastAverageOp, DistanceTransformOp< T >, DistanceTransformOp< DistanceModelExponential >, DistanceTransformOp< DistanceModelLinear >, DifferentialOp, CropOp, CopyOp, and ChannelCatenatorOp.
Depending on the operator, modifies the geometry and type of dst.
Coord policy is changed very rarely, so it is copied here, as a default.
By default, use src type. Image operator changes it if needed (e.g. signed, integer or float).
Should set geometry, including channel geometry.
Some operators, like QualityOverrideOp, do not like modifying the target dst (unless empty)
Reimplemented in DistanceTransformFillOp< T >, DistanceTransformFillOp< DistanceModelExponential >, and DistanceTransformFillOp< DistanceModelLinear >.
|
virtual |
Main interface. Typically splits processing to each channel.
The default implementation calls makeCompatible() and
Reimplemented in CopyOp, RecomposeOp, MagnitudeOp, BinaryPixelVectorOp< F >, BinaryPixelVectorOp< SubtractionFunctor >, BinaryPixelVectorOp< MultiplicationFunctor >, MarginalStatisticOp, HighBoostOp, VerticalCatenatorOp, and ChannelCatenatorOp.
|
virtual |
Run the operator on a series of images. Geometry and type may be changed. UNDER CONSTR.
Checks that images in dst are not overlapping with those of src. If yes, create tmp images.
|
protected |
Calls processWithTemp() if the frames overlap.
Creates a copy of dstImage, runs the operator and copies the result to dstImage. Calls processWithTemp() if the frames overlap Apply to a frame. Target dst must be compatible.. Process image channel and alpha channels equally. Eg. resizing operations may use this. Neutral
|
protected |
Process each (src,dst) channel pair independently. Raise error if their counts differ.
Corresponds to processChannelsSeparately.