Public Member Functions | Public Attributes | Protected Attributes | Friends | List of all members
AccumulationArray Class Reference

General-purpose image compositing. More...

#include <AccumulationArray.h>

Collaboration diagram for AccumulationArray:
Collaboration graph
[legend]

Public Member Functions

 AccumulationArray (size_t width=0, size_t height=0)
 Default constructor. The channels are DATA, COUNT, WEIGHT, WEIGHT2.
 
 AccumulationArray (const AccumulationArray &accArray)
 
virtual ~AccumulationArray ()
 Destructor.
 
virtual void setGeometry (size_t width, size_t height)
 Changes the geometry of all the layers.
 
void setGeometry (const AreaGeometry &geometry)
 Changes the geometry of all the layers.
 
const AreaGeometrygetGeometry () const
 
void clear ()
 Resets the accumulation array values to undetectValue. Does not change the geometry.
 
void reset ()
 Collapses the accumulation geometries to zero area.
 
unsigned int getWidth () const
 Returns the width of the accumulation array.
 
unsigned int getHeight () const
 Returns the height of the accumulation array.
 
const CoordinateHandler2DgetCoordinateHandler () const
 
size_t address (const size_t &i, const size_t &j) const
 

Public Attributes

ImageT< double > data
 Accumulation array for actual data: $ sum x_i $, $ sum w_i x_i $ or generally $ sum w_i^r x_i^p $.
 
ImageT< double > weight
 Accumulation array for weights ( $ sum w_i $)
 
ImageT< unsigned int > count
 Accumulation array ( $ N $ in $ sum_i^N $)
 
ImageT< double > data2
 Accumulation array for auxiliary data; typically $ sum w_i^r x_i^{2p} $ for std.deviation or difference (in Overwrite)
 

Protected Attributes

AreaGeometry geometry
 
CoordinateHandler2D coordinateHandler
 

Friends

class AccumulationMethod
 

Detailed Description

General-purpose image compositing.

Applied pre-scaling for the data; by default scale=1 and bias=0. Weights are assumed to take values between 0...1. In the extraction stage, the data can be scaled.

features

AccumulationArray has four layers:

  1. data - main cumulative quantity;
  2. weight - weight ie. significance of the cumulant;
  3. count - number of samples added (unsigned int);
  4. dataSquared - sum of squared quantities added;

Injection. The main loop iterates radar (image) data points of type <Ti>, mapping each point to a single point in the target array of type <T>; hence the name injector.

Cumulation. The compositing starts by initiating the target image, see open(). Each input radar image is projected on the target image cumulatively, see execute(). Finally, the cumulation must be completed by normalizing the result with the number/weight of cumulated inputs, see close(). Hence, the target which should be seen.

The weights are stored in the first alphaChannel (index 0) of the target image. If the target has a second image channel, also the (weighted) squared values are cumulated.

In cumulation, ...

\[ x = \sqrt[p]{\frac{\sum_i {q_i}^r x_i^p}{\sum_i {q_i}^r } } \]

The default type of target image, that is, cumulation array, is double. If no (float valued) weighting is applied, target image could be long int as well.


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