Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SlidingWindowHistogram< R > Class Template Reference

Base class for median and str histogram based statistics. More...

#include <SlidingWindowHistogramOp.h>

Inheritance diagram for SlidingWindowHistogram< R >:
Inheritance graph
[legend]
Collaboration diagram for SlidingWindowHistogram< R >:
Collaboration graph
[legend]

Public Member Functions

 SlidingWindowHistogram (int width=1, int height=0, int bins=256)
 
 SlidingWindowHistogram (const HistogramWindowConfig &conf)
 
virtual void initialize ()
 
virtual void clear ()
 Clears the applied statistics. Redefined in derived classes.
 
- Public Member Functions inherited from SlidingWindow< HistogramWindowConfig, WindowCore >
 SlidingWindow (int width=0, int height=0, bool horzMultiple=true, bool vertMultiple=true)
 
 SlidingWindow (const HistogramWindowConfig &conf, bool horzMultiple=true, bool vertMultiple=true)
 
void setSlidingMode (bool horzMultiple, bool vertMultiple)
 
void run ()
 Sets coord handler, calls initialise, sets pos(0,0), fills, writes and slides. More...
 
void runHorz ()
 Sets coord handler, calls initialise, sets pos(0,0), fills, writes and slides. More...
 
void runVert ()
 Sets coord handler, calls initialise, sets pos(0,0), fills, writes and slides. More...
 
virtual void debug ()
 
const std::string & getModeStr ()
 
- Public Member Functions inherited from Window< C, R >
 Window (size_t width=1, size_t height=0)
 Constructor with geometry setting option.
 
 Window (const C &conf)
 Constructor adapting given configuration.
 
 Window (const Window &window)
 
virtual ~Window ()
 Destructor.
 
virtual void setSize (size_t width, size_t height)
 Sets the window size.
 
size_t getArea ()
 Returns the nominal area in pixels.
 
size_t getSamplingArea ()
 Returns the area which has eventually been scaled (in a non-linear coordinate system)
 
virtual void toStream (std::ostream &ostr) const
 
- Public Member Functions inherited from WindowCore
virtual void setSrcFrames (const ImageTray< const Channel > &srcTray)
 
virtual void setDstFrames (ImageTray< Channel > &dstTray)
 
virtual void setSrcFrameWeight (const ImageFrame &srcW)
 
virtual void setDstFrameWeight (ImageFrame &dstW)
 
- Public Member Functions inherited from WindowCoreBase
virtual void setSrcFrame (const ImageFrame &src)
 
virtual void setDstFrame (ImageFrame &dst)
 

Protected Member Functions

virtual void setImageLimits () const
 Sets internal limits corresponding to image geometries. Typically using coordHandler. More...
 
virtual void removePixel (Point2D< int > &p)
 Removes a pixel from window statistics. Unvalidated location. More...
 
virtual void addPixel (Point2D< int > &p)
 Adds a pixel to window statistics. Unvalidated location. More...
 
virtual void write ()
 Write the result in the target image. More...
 
- Protected Member Functions inherited from SlidingWindow< HistogramWindowConfig, WindowCore >
virtual bool reset ()
 Returns false, if traversal should be ended.
 
void slideHorz ()
 High-level functionality of a sliding window. FINAL.
 
void slideVert ()
 High-level functionality of a sliding window. FINAL.
 
bool moveDown ()
 Moves one pixel down. Stops at the edge, and returns false. More...
 
bool moveUp ()
 Moves one pixel up. Stops at the edge, and returns false. More...
 
bool moveRight ()
 Moves one pixel right. Stops at the edge, and returns false. More...
 
bool moveLeft ()
 Moves one pixel left. Stops at the edge, and returns false. More...
 
virtual void fillBoth ()
 Clears and computes the statistics for the current location. More...
 
void fillHorz ()
 Clears and computes the statistics for the current location. FINAL. More...
 
void fillVert ()
 Clears and computes the statistics for the current location. FINAL. More...
 
void updateHorzMultiple ()
 In moving horizontally, updates the window centered at current location. Calls removePixel() and addPixel().
 
void updateHorzSingle ()
 
void updateVertMultiple ()
 In moving vertically, updates the window centered at current location. Calls removePixel() and addPixel().
 
void updateVertSingle ()
 For 1 x n sized windows.
 
- Protected Member Functions inherited from Window< C, R >
virtual bool isHorizontal () const
 Tells if the window should be moved (traversed of slided) row-by-row (horizontally) or column-by-column (vertically). More...
 
virtual void update ()
 At each location, this is called to calculate and store something in members.
 
virtual void setLoopLimits (int width, int height)
 Sets the actual traversal range inside the window. Sometimes applied dynamically by reset().
 
void setLoopLimits ()
 Sets the actual traversal range inside the window. Sometimes applied dynamically by reset().
 
bool debugDiag (int bit=4)
 

Protected Attributes

drain::Histogram histogram
 
- Protected Attributes inherited from SlidingWindow< HistogramWindowConfig, WindowCore >
Point2D< int > locationLead
 
Point2D< int > locationTrail
 
void(SlidingWindow< HistogramWindowConfig, WindowCore >::* fill )()
 Pointer to fill operation preformed at initial location (0,0) More...
 
void(SlidingWindow< HistogramWindowConfig, WindowCore >::* updateHorz )()
 Pointer to update function invoked at each horizontal move. More...
 
void(SlidingWindow< HistogramWindowConfig, WindowCore >::* updateVert )()
 Pointer to update function invoked at each vertical move. More...
 
Point2D< int > locationTmp
 
- Protected Attributes inherited from Window< C, R >
Point2D< int > location
 Current location of this window.
 
int samplingArea = 0
 Number of pixels in the window (frame width*height?).
 
bool resetAtEdges = false
 To avoid accumulated numerical errors esp. with floats, reset the statistics at row/cols ends. See reset() .
 
bool SCALE = true
 If set, scaling is applied, potentially slowering the computation.
 
Range< int > iRange
 Studies source and destination images and decides whether scaling (SCALE=true) should be set.
 
Range< int > jRange
 
CoordinateHandler2D coordinateHandler
 

Additional Inherited Members

- Public Types inherited from Window< C, R >
typedef C conf_t
 
- Public Attributes inherited from Window< C, R >
conf_t conf
 
UniCloner< UnaryFunctorunicloner
 
drain::UnaryFunctormyFunctor
 
- Public Attributes inherited from WindowCore
ImageView src
 
ImageView dst
 

Detailed Description

template<class R = WindowCore>
class drain::image::SlidingWindowHistogram< R >

Base class for median and str histogram based statistics.

Template Parameters
-Resource
See also
MarginalStatisticsOp

Member Function Documentation

◆ addPixel()

virtual void addPixel ( Point2D< int > &  p)
inlineprotectedvirtual

Adds a pixel to window statistics. Unvalidated location.

Updates class-specific window statistics by adding a pixel value - typically at the leading edge of the window.

Parameters
p- location at which contribution should be removed

The argument p is not validated in advance but it should be checked within the implementation using coordinateHandler.validate(p), for example.

Implements SlidingWindow< HistogramWindowConfig, WindowCore >.

Reimplemented in SlidingWindowHistogramWeighted.

◆ initialize()

virtual void initialize ( )
inlinevirtual

TODO: weight = > weightSUm TODO: multiple channels (banks)?

Implements SlidingWindow< HistogramWindowConfig, WindowCore >.

◆ removePixel()

virtual void removePixel ( Point2D< int > &  p)
inlineprotectedvirtual

Removes a pixel from window statistics. Unvalidated location.

     Updates class-specific window statistics by removing a pixel value  - typically at the trailing edge of the window.

     \param p - location at which contribution should be removed
    const int h = (conf.height>0.0) ? conf.height : conf.width;

GaussianStripeVert window2(h, 0.5*conf.radius*static_cast{double}(h)); GaussianStripe2<false> window2(h, 0.5*conf.radius*static_cast{double}(h));

 The argument p is \em not validated in advance but
 it should be checked within the implementation using coordinateHandler.validate(p), for example.

Implements SlidingWindow< HistogramWindowConfig, WindowCore >.

Reimplemented in SlidingWindowHistogramWeighted.

◆ setImageLimits()

virtual void setImageLimits ( ) const
inlineprotectedvirtual

Sets internal limits corresponding to image geometries. Typically using coordHandler.

Studies source image(s) and sets srcWidth, srcHeight and coordHandler. Consider already implemented methods like WindowCore::adjustCoordHandler()

Implements Window< C, R >.

◆ write()

virtual void write ( )
inlineprotectedvirtual

Write the result in the target image.

Sliding windows enjoys a confidence of the application, as it has the

Implements SlidingWindow< HistogramWindowConfig, WindowCore >.

Reimplemented in SlidingWindowMedianWeighted, SlidingWindowMedian, and SlidingWindowHistogramWeighted.


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