Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
BinaryFunctorOp< F > Class Template Reference

Class for using two-parameter function objects (like std::functor) for sequential and spatial pixel iteration. More...

#include <FunctorOp.h>

Inheritance diagram for BinaryFunctorOp< F >:
Inheritance graph
[legend]
Collaboration diagram for BinaryFunctorOp< F >:
Collaboration graph
[legend]

Public Member Functions

 BinaryFunctorOp (bool adaptParams=true, bool adoptLimit=true)
 Default constructor.
 
 BinaryFunctorOp (const BinaryFunctorOp &op)
 
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 &src1, const Channel &src2, Channel &dst) const
 
virtual void traverseSequentially (const Channel &src1, const Channel &src2, Channel &dst) const
 
virtual void traverseSpatially (const Channel &src1, const Channel &src2, Channel &dst) const
 
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().
 
- Public Member Functions inherited from FunctorOp< F >
 FunctorOp (const FunctorOp &op)
 
void adaptParameters (bool adaptLimit=false)
 
- Public Member Functions inherited from FunctorWrapper< F >
 FunctorWrapper (const FunctorWrapper< F > &op)
 
- 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 traverseChannel (const Channel &src, const Channel &srcAlpha, Channel &dst, Channel &dstAlpha) const
 Apply to single channel with alpha.
 
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)
 
 BeanLike (const std::string &name, const std::string &description="")
 
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 >
getParameter (const std::string &p) const
 Gets a single parameter.
 
const map_tgetParameters () const
 
map_tgetParameters ()
 
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".
 
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.
 
BeanLikeoperator= (const BeanLike &b)
 
virtual std::ostream & toStream (std::ostream &ostr, bool compact=true) const
 

Protected Member Functions

void getDstConf (const ImageConf &src, ImageConf &dst) const
 Does not change dst geometry.
 
- Protected Member Functions inherited from FunctorOp< F >
virtual bool processOverlappingWithTemp (const ImageFrame &srcFrame, Image &dstImage) const
 
bool processOverlappingWithTemp (const ImageTray< const Channel > &src, ImageTray< Image > &dst) const
 
 FunctorOp (bool adaptParams=false, bool adoptLimit=false)
 
- Protected Member Functions inherited from ImageOp
 ImageOp (const std::string &name=__FUNCTION__, const std::string &description="")
 
 ImageOp (const ImageOp &op)
 
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.
 
- 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()
 

Additional Inherited Members

- Public Types inherited from BeanLike
typedef ReferenceMap map_t
 
- Public Attributes inherited from FunctorOp< F >
bool LIMIT
 
- Public Attributes inherited from FunctorWrapper< F >
functor
 
- Public Attributes inherited from ImageMod
bool physicalScale
 
- Static Protected Member Functions inherited from ImageOp
static void adaptCoordinateHandler (const Channel &src, CoordinateHandler2D &handler)
 
- Protected Attributes inherited from BeanLike
const std::string name
 
const std::string description
 
map_t parameters
 

Detailed Description

template<class F>
class drain::image::BinaryFunctorOp< F >

Class for using two-parameter function objects (like std::functor) for sequential and spatial pixel iteration.

! \template F - binary (two parameter) functor

Constructor & Destructor Documentation

◆ BinaryFunctorOp()

template<class F >
BinaryFunctorOp ( bool  adaptParams = true,
bool  adoptLimit = true 
)
inline

Default constructor.

By default, all the parameters of the wrapped functor are adapted.

Member Function Documentation

◆ getDstConf()

template<class F >
void getDstConf ( const ImageConf src,
ImageConf dst 
) const
inlineprotectedvirtual

Does not change dst geometry.

Reimplemented from ImageOp.

◆ initializeParameters() [1/2]

template<class F >
virtual void initializeParameters ( const ImageFrame src,
const ImageFrame dst 
) const
inlinevirtual

Set applicable internal parameters before calling traverse().

Reimplemented from ImageOp.

◆ initializeParameters() [2/2]

template<class F >
virtual void initializeParameters ( const ImageFrame src,
const ImageFrame src2,
const ImageFrame dst 
) const
inlinevirtual

Set applicable internal parameters before calling traverse().

Reimplemented from ImageOp.

◆ traverseChannel()

template<class F >
virtual void traverseChannel ( const Channel src,
Channel dst 
) const
inlinevirtual

Apply to single channel.

Reimplemented from ImageOp.

◆ traverseChannels()

template<class F >
virtual void traverseChannels ( const ImageTray< const Channel > &  src,
ImageTray< Channel > &  dst 
) const
inlinevirtual

Reimplemented from ImageOp.

◆ traverseSequentially()

template<class T >
void traverseSequentially ( const Channel src1,
const Channel src2,
Channel dst 
) const
virtual

Unlimited, unscaled, ie. "direct". This option is reasonable if dst is double, for example.

Unlimited but scaled.


The documentation for this class was generated from the following file: