|
General-purpose image compositing. More...
#include <AccumulationArray.h>
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 AreaGeometry & | getGeometry () 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 CoordinateHandler2D & | getCoordinateHandler () const |
size_t | address (const size_t &i, const size_t &j) const |
Public Attributes | |
ImageT< double > | data |
Accumulation array for actual data: , or generally . | |
ImageT< double > | weight |
Accumulation array for weights ( ) | |
ImageT< unsigned int > | count |
Accumulation array ( in ) | |
ImageT< double > | data2 |
Accumulation array for auxiliary data; typically for std.deviation or difference (in Overwrite) | |
Protected Attributes | |
AreaGeometry | geometry |
CoordinateHandler2D | coordinateHandler |
Friends | |
class | AccumulationMethod |
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.
AccumulationArray has four layers:
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, ...
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.