31#ifndef ACCUMULATION_H_
32#define ACCUMULATION_H_
39#include <drain/util/Bank.h>
40#include <drain/util/BeanLike.h>
41#include <drain/util/Point.h>
42#include <drain/util/Rectangle.h>
45#include "CoordinatePolicy.h"
46#include "AccumulationArray.h"
47#include "AccumulationConverter.h"
94 throw std::runtime_error(
"AccumulationMethod::add - method/rule UNDEFINED");
100 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight,
unsigned int count)
const {
101 add(accArray, i, value, weight);
146 void extractDev(
const AccumulationArray & accArray,
const AccumulationConverter & coder, Image & dst,
const drain::Rectangle<int> & crop = {0,0,0,0})
const;
170 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
189 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
203 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
217 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
238 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
241 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight,
unsigned int count)
const override;
264 parameters.link(
"p",
p = 1.0,
"exponent for data value");
265 parameters.link(
"r",
r = 1.0,
"exponent for weight");
266 parameters.link(
"bias", bias = 0.0,
"origin, for non-negative value exponent");
281 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
284 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight,
unsigned int count)
const override;
310 mutable double pInv = 1.0;
311 mutable bool USE_P =
false;
315 mutable double rInv = 1.0;
316 mutable bool USE_R =
false;
Something which has a name, a description and possibly some parameters of varying type.
Definition BeanLike.h:58
const std::string description
Brief, human-readable description of this bean.
Definition BeanLike.h:309
map_t parameters
Parameters (name -> linked variable), typically linked to member variables of the derived class.
Definition BeanLike.h:313
virtual const std::string & getName() const
Return the name of an instance.
Definition BeanLike.h:89
virtual const std::string & getDescription() const
Return a brief description.
Definition BeanLike.h:94
BeanLike(const BeanLike &b)
Copy constructor. Re-links parameters to the member variables of this (new) instance.
Definition BeanLike.h:71
const std::string name
Name of this bean, typically also the name of the (derived) class.
Definition BeanLike.h:306
void copyStruct(const ReferenceMap &m, const T &src, T &dst, extLinkPolicy policy=RESERVE)
Experimental. Copies references and values of a structure to another.
Definition ReferenceMap.h:412
General-purpose image compositing.
Definition AccumulationArray.h:108
Function for accumulating data: maximum, average, weighted average etc.
Definition AccumulationMethods.h:66
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight, unsigned int count) const
Adds 'count' copies of a weighted value to the accumulation array.
Definition AccumulationMethods.h:100
virtual void extractWeight(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const
Retrieves the (average) weight of the accumulated values.
Definition AccumulationMethods.cpp:155
virtual void extractValue(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const
Retrieve the accumulated values from the accumulation matrix back to a data array.
Definition AccumulationMethods.cpp:75
virtual void extractDev(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const
Retrieves the standard deviation of the accumulated values.
Definition AccumulationMethods.cpp:229
virtual void extractCount(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const
Retrieves the count of values accumulated.
Definition AccumulationMethods.cpp:200
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight) const
Adds a weighted value to the accumulation array.
Definition AccumulationMethods.h:93
DOC: Add class description.
Definition AccumulationMethods.h:229
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight) const override
Adds a weighted value to the accumulation array.
Definition AccumulationMethods.cpp:513
virtual void extractDev(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Retrieves the standard deviation of the accumulated values.
Definition AccumulationMethods.cpp:659
virtual void extractValue(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Retrieve the accumulated values from the accumulation matrix back to a data array.
Definition AccumulationMethods.cpp:538
virtual void extractWeight(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Retrieves the (average) weight of the accumulated values.
Definition AccumulationMethods.cpp:609
Class for multi-channel digital images. Supports dynamic typing with base types (char,...
Definition Image.h:183
DOC: Add class description.
Definition AccumulationMethods.h:180
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight) const override
Adds a weighted value to the accumulation array.
Definition AccumulationMethods.cpp:331
DOC: Add class description.
Definition AccumulationMethods.h:322
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight) const
Adds a weighted value to the accumulation array.
Definition AccumulationMethods.cpp:1030
DOC: Add class description.
Definition AccumulationMethods.h:209
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight) const override
Definition AccumulationMethods.cpp:362
virtual void extractDev(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Retrieves the standard deviation of the accumulated values.
Definition AccumulationMethods.cpp:456
virtual void extractValue(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Retrieve the accumulated values from the accumulation matrix back to a data array.
Definition AccumulationMethods.cpp:385
DOC: Add class description.
Definition AccumulationMethods.h:194
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight) const override
Adds a weighted value to the accumulation array.
Definition AccumulationMethods.cpp:345
DOC: Add class description.
Definition AccumulationMethods.h:162
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight) const override
Adds a weighted value to the accumulation array.
Definition AccumulationMethods.cpp:262
virtual void extractDev(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Special defimition: difference.
Definition AccumulationMethods.cpp:277
DOC: Add class description.
Definition AccumulationMethods.h:257
virtual void add(AccumulationArray &accArray, const size_t i, double value, double weight) const override
Adds a weighted value to the accumulation array.
Definition AccumulationMethods.cpp:729
virtual void extractDev(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Retrieves the standard deviation of the accumulated values.
Definition AccumulationMethods.cpp:953
virtual void extractValue(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Retrieve the accumulated values from the accumulation matrix back to a data array.
Definition AccumulationMethods.cpp:796
double r
Power for weights.
Definition AccumulationMethods.h:314
virtual void updateBean() const override
Called after setParameters()
Definition AccumulationMethods.cpp:709
virtual void extractWeight(const AccumulationArray &accArray, const AccumulationConverter &coder, Image &dst, const drain::Rectangle< int > &crop={0, 0, 0, 0}) const override
Retrieves the (average) weight of the accumulated values.
Definition AccumulationMethods.cpp:895
double p
Power for data values.
Definition AccumulationMethods.h:309
Rectange defined through lower left and upper right coordinates.
Definition Rectangle.h:65
Converts raw data to values appropriate for accumulation.
Definition AccumulationConverter.h:50