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

A two-dimensional image processing window that handles the special ODIM codes and scales the result. Template parameter for drain::SlidingWindowOpT. More...

#include <RadarWindows.h>

Inheritance diagram for SlidingRadarWindowBase< C, R >:
Inheritance graph
[legend]
Collaboration diagram for SlidingRadarWindowBase< C, R >:
Collaboration graph
[legend]

Public Member Functions

 SlidingRadarWindowBase (int width=0, int height=0)
 
 SlidingRadarWindowBase (const C &conf)
 
void setSrcFrame (const drain::image::ImageFrame &src)
 Sets input image and retrieves ODIM metadata from image Properties.
 
- Public Member Functions inherited from SlidingWindow< C, RadarWindowCore >
 SlidingWindow (int width=0, int height=0, bool horzMultiple=true, bool vertMultiple=true)
 
 SlidingWindow (const C &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 ()
 
virtual void write ()=0
 Write the result in the target image. More...
 
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 setDstFrame (ImageFrame &dst)
 

Protected Member Functions

virtual void initialize () override
 Sets class-specific initial values. Does not change general window state (e.g. location). Should not accumulate any statistics. More...
 
void setImageLimits () const
 Sets internal limits corresponding to image geometries. Typically using coordHandler. More...
 
void setRangeNorm ()
 To compensate polar geometry, set applicable range for pixel area scaling. More...
 
virtual bool reset ()
 Returns false, if traversal should be ended.
 
- Protected Member Functions inherited from SlidingWindow< C, RadarWindowCore >
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 clear ()
 Clears the applied statistics. Redefined in derived classes.
 
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.
 
virtual void addPixel (Point2D< int > &p)=0
 Adds a pixel to window statistics. Unvalidated location. More...
 
virtual void removePixel (Point2D< int > &p)=0
 Removes a pixel from window statistics. Unvalidated location. More...
 
- 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

int rangeNorm
 
int rangeNormEnd
 
int countMin
 
- Protected Attributes inherited from SlidingWindow< C, RadarWindowCore >
Point2D< int > locationLead
 
Point2D< int > locationTrail
 
void(SlidingWindow< C, RadarWindowCore >::* fill )()
 Pointer to fill operation preformed at initial location (0,0) More...
 
void(SlidingWindow< C, RadarWindowCore >::* updateHorz )()
 Pointer to update function invoked at each horizontal move. More...
 
void(SlidingWindow< C, RadarWindowCore >::* 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 C, class R = RadarWindowCore>
class rack::SlidingRadarWindowBase< C, R >

A two-dimensional image processing window that handles the special ODIM codes and scales the result. Template parameter for drain::SlidingWindowOpT.

Template Parameters
C- configuration structure
R- window core (input and output members)

drain::image::WindowCore supports single-src, single-dst (with respective weights).

Member Function Documentation

◆ initialize()

virtual void initialize ( )
inlineoverrideprotectedvirtual

Sets class-specific initial values. Does not change general window state (e.g. location). Should not accumulate any statistics.

See also
fill()
clear()

Implements SlidingWindow< C, RadarWindowCore >.

Reimplemented in DopplerInversionWindow, and DopplerWindow.

◆ setImageLimits()

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 >.

◆ setRangeNorm()

void setRangeNorm ( )
inlineprotected

To compensate polar geometry, set applicable range for pixel area scaling.

Distance [bins] at which a bin is (nearly) square, ie. beam-perpendicular and beam-directional steps are equal.

Distance [bins] at which a single azimuthal step is equal to conf.frame.height steps at rangeNorm.


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