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"
93 throw std::runtime_error(
"AccumulationMethod::add - method/rule UNDEFINED");
99 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight,
unsigned int count)
const {
100 add(accArray, i, value, weight);
145 void extractDev(
const AccumulationArray & accArray,
const AccumulationConverter & coder, Image & dst,
const drain::Rectangle<int> & crop = {0,0,0,0})
const;
151 AccumulationMethod(
const std::string & name,
const std::string & description) : BeanLike(name, description) {
168 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
186 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
199 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
212 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
232 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
235 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight,
unsigned int count)
const override;
257 parameters.link(
"p",
p = 1.0,
"exponent for data value");
258 parameters.link(
"r",
r = 1.0,
"exponent for weight");
259 parameters.link(
"bias", bias = 0.0,
"origin, for non-negative value exponent");
265 parameters.
copyStruct(method.parameters, method, *
this);
279 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight)
const override;
282 void add(
AccumulationArray & accArray,
const size_t i,
double value,
double weight,
unsigned int count)
const override;
308 mutable double pInv = 1.0;
309 mutable bool USE_P =
false;
313 mutable double rInv = 1.0;
314 mutable bool USE_R =
false;
Something which has a name, a description and possibly some parameters of varying type.
Definition BeanLike.h:60
virtual const std::string & getName() const
Return the name of an instance.
Definition BeanLike.h:82
virtual const std::string & getDescription() const
Return a brief description.
Definition BeanLike.h:87
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:399
General-purpose image compositing.
Definition AccumulationArray.h:112
Function for accumulating data: maximum, average, weighted average etc.
Definition AccumulationMethods.h:65
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:99
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:92
Definition AccumulationMethods.h:223
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:184
Definition AccumulationMethods.h:177
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
Definition AccumulationMethods.h:319
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
Definition AccumulationMethods.h:204
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
Definition AccumulationMethods.h:190
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
Definition AccumulationMethods.h:160
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
Definition AccumulationMethods.h:250
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:312
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:307
Definition DataSelector.cpp:1277
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