![]() |
|
Smoothes image and mixes the result with the original. More...
#include <BlenderOp.h>


Public Member Functions | |
| BlenderOp (int width=5, int height=0, const std::string &spreader="avg", const std::string &blender="max", unsigned short loops=1, double expansionCoeff=1.0) | |
| Default constructor. | |
| BlenderOp (const BlenderOp &op) | |
| const std::string & | getSmootherKey () |
| virtual void | initializeParameters (const ImageFrame &src, const ImageFrame &dst) const |
| Set applicable internal parameters before calling traverse(). | |
| void | traverseChannels (const ImageTray< const Channel > &src, ImageTray< Channel > &dst) const |
| Main operation, requires weighted image data. | |
| virtual void | traverseChannel (const Channel &src, Channel &dst) const |
| Force multi-channel processing. | |
| void | traverseChannel (const Channel &src, const Channel &srcWeight, Channel &dst, Channel &dstWeight) const |
| Force multi-channel processing. | |
| virtual const std::string & | getName () const override |
| Return the name of an instance. | |
Public Member Functions inherited from WindowOp< W > | |
| WindowOp (const std::string &name=__FUNCTION__, const std::string &description="") | |
| WindowOp (const std::string &name, const std::string &description, unsigned int width, unsigned int height) | |
| WindowOp (const typename W::conf_t &c, const std::string &name=__FUNCTION__, const std::string &description="") | |
| WindowOp (const WindowOp< W > &op) | |
| void | setSize (unsigned int width) |
| void | setSize (unsigned int width, unsigned int height) |
Public Member Functions inherited from ImageOp | |
| virtual void | process (const ImageFrame &src, Image &dst) const |
| Main interface. Typically splits processing to each channel. | |
| virtual void | process (Image &dst) const override final |
| Run this modifier for an image. | |
| 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. | |
| virtual void | getDstConf (const ImageConf &src, ImageConf &dst) const |
| Given source image, determine respective dest image configuration. | |
| virtual void | makeCompatible (const ImageConf &src, Image &dst) const |
| Depending on the operator, modifies the geometry and type of dst. | |
| 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. | |
| virtual void | traverseChannels (ImageTray< Channel > &dst) const |
| Run this modifier for a set of channels. | |
| virtual void | traverseChannel (Channel &dst) const |
| Run this modifier for an image frame. | |
| virtual void | traverseChannel (Channel &dst, Channel &dstAlpha) const |
| Run this modifier for an image frame. | |
| virtual void | traverseChannels (ImageFrame &dst) const |
| Converts dst to ImageTray<Channel> and calls traverseFrame(ImageTray<Channel> &) . | |
Public Member Functions inherited from BeanLike | |
| BeanLike (const BeanLike &b) | |
Copy constructor. Re-links parameters to the member variables of this (new) instance. | |
| BeanLike (const std::string &name, const std::string &description="") | |
| Constructor. | |
| virtual const std::string & | getDescription () const |
| Return a brief description. | |
| bool | hasParameters () const |
| Tells if any parameters have been linked (registered) for this bean. | |
| template<class F > | |
| F | getParameter (const std::string &p) const |
| Gets a single parameter. | |
| const map_t & | getParameters () const |
| Returns the parameter map (const access). | |
| map_t & | getParameters () |
| Returns the parameter map. | |
| template<class F > | |
| void | setParametersFromEntries (const F &args) |
| Sets several parameters at once from a sequence of key-value pairs. | |
| 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". | |
| 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. | |
| template<class F > | |
| void | setParameter (const std::string &p, std::initializer_list< F > value) |
| Sets a single parameter. | |
| BeanLike & | operator= (const BeanLike &b) |
| Assigns the parameter values of another bean (by key) to this one's own parameters. | |
| virtual std::ostream & | toStream (std::ostream &ostr, bool compact=true) const |
| Prints the name, description and current parameter values. | |
Static Protected Member Functions | |
| template<bool WEIGHTED = false> | |
| static const drain::SmartMap< std::string > & | getSmootherAliasMap () |
| template<bool WEIGHTED = false> | |
| static const drain::SmartMap< std::string > & | getMixerAliasMap () |
Static Protected Member Functions inherited from ImageOp | |
| static void | adaptCoordinateHandler (const Channel &src, CoordinateHandler2D &handler) |
Protected Attributes | |
| std::string | spreader |
| std::string | blender |
| unsigned short | loops = 1 |
| double | expansionCoeff = 1.0 |
Protected Attributes inherited from BeanLike | |
| const std::string | name |
| Name of this bean, typically also the name of the (derived) class. | |
| const std::string | description |
| Brief, human-readable description of this bean. | |
| map_t | parameters |
| Parameters (name -> linked variable), typically linked to member variables of the derived class. | |
Additional Inherited Members | |
Public Types inherited from WindowOp< W > | |
| typedef W | window_t |
Public Types inherited from BeanLike | |
| typedef ReferenceMap | map_t |
| Reference map type used to store this bean's parameters (name -> linked variable). | |
Public Attributes inherited from WindowOp< W > | |
| W::conf_t | conf |
Public Attributes inherited from ImageMod | |
| bool | physicalScale |
Protected Member Functions inherited from ImageOp | |
| 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. | |
| 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. | |
| 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 &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() | |
Smoothes image and mixes the result with the original.
Example. With loops=2 and smooth mixing with coeff=c (instead of maximum), this operator produces
\[ F2 = (1-c)F + cM\{ (1-c)F + cM\{F\} \} = (1-c)F + (1-c)cM{F} + c^2M^2{F} \]
where \(F\) is an image, \(M\{\}\) is a FastAverage operator of size \(W \times H\), and \(c\) is the mixing coefficient between 0.0 and 1.0.
This operator can be also used for restoring images containing specks of low quality.
|
inlineoverridevirtual |
Return the name of an instance.
Reimplemented from WindowOp< W >.
|
inlinestaticprotected |
Use plain names (not prefixed)
|
inlinevirtual |
Set applicable internal parameters before calling traverse().
Reimplemented from ImageOp.
Force multi-channel processing.
Reimplemented from ImageOp.
|
inlinevirtual |
Force multi-channel processing.
Reimplemented from ImageOp.
|
virtual |
Main operation, requires weighted image data.
Reimplemented from ImageOp.
1.9.8