31#ifndef DRAIN_ACCUMULATOR_H_
32#define DRAIN_ACCUMULATOR_H_
34#include <drain/image/CoordinatePolicy.h>
40#include "drain/util/Point.h"
41#include "drain/util/Rectangle.h"
44#include "AccumulationArray.h"
45#include "AccumulationMethods.h"
46#include "AccumulationConverter.h"
87 QUANTITY_SPECIFIC = 32,
89 WEIGHT_GLOBAL =
'W'|QUALITY,
90 COUNT_GLOBAL =
'C'|QUALITY,
93 DEVIATION =
's'|QUALITY
102 typedef std::list<FieldType> FieldList;
107 return static_cast<char>(field & 127);
115 return (field & QUALITY) != 0;
121 return ((
int)field & (
int)QUANTITY_SPECIFIC) != 0;
125 void getFields(
const std::string & fieldStr, FieldList & fieldList);
128 void createFieldList(
const std::string & fieldChars, FieldList & fieldList);
161 void setMethod(
const std::string & method);
164 void setMethod(
const std::string & name,
const std::string & params);
176 bool isMethodSet()
const {
186 AccumulationMethod & getMethod() {
199 void add(
const size_t i,
double value,
double weight) {
205 void add(
const size_t i,
double value,
double weight,
unsigned int count) {
254 std::ostream & toStream(std::ostream & ostr)
const;
292std::ostream & operator<<(std::ostream &ostr,
const Accumulator & accumulator){
293 return accumulator.Accumulator::toStream(ostr);
virtual const std::string & getName() const
Return the name of an instance.
Definition BeanLike.h:89
const map_t & getParameters() const
Returns the parameter map (const access).
Definition BeanLike.h:116
Two-way mapping between strings and objects of template class T.
Definition Dictionary.h:61
void getValues(std::ostream &ostr) const
Dumps the values.
Definition SmartMap.h:341
General-purpose image compositing.
Definition AccumulationArray.h:108
virtual void setGeometry(size_t width, size_t height)
Changes the geometry of all the layers.
Definition AccumulationArray.cpp:47
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) const
Adds a weighted value to the accumulation array.
Definition AccumulationMethods.h:93
Definition Accumulator.h:76
void setMethod(const AccumulationMethod &method)
Copies the method and its parameters.
Definition Accumulator.h:171
static bool isSpecific(FieldType field)
Future option to mark scaled/normalized etc.
Definition Accumulator.h:120
static void createFieldList(const std::string &fieldChars, FieldList &fieldList)
Definition Accumulator.cpp:79
void initDst(const AccumulationConverter &coder, Image &dst, drain::Rectangle< int > &cropArea) const
Definition Accumulator.cpp:378
void add(const size_t i, double value, double weight, unsigned int count)
Adds decoded data that applies natural scaling.
Definition Accumulator.h:205
void extractField(char field, const AccumulationConverter &converter, Image &dst, const drain::Rectangle< int > &crop) const
Extracts the accumulated quantity or secondary quantities like weight and standard deviation.
Definition Accumulator.h:247
FieldType
Definition Accumulator.h:84
void setMethod(const std::string &method)
Set method to some of the predefined methods.
Definition Accumulator.cpp:194
Accumulator()
Definition Accumulator.h:135
void add(const size_t i, double value, double weight)
Adds decoded data that applies natural scaling.
Definition Accumulator.h:199
AccumulationArray accArray
Todo: export.
Definition Accumulator.h:132
void addData(const Image &src, const AccumulationConverter &converter, double weight=1.0, int iOffset=0, int jOffset=0)
Add (accumulate) data with given prior weight.
Definition Accumulator.cpp:212
AccumulationMethod undefinedMethod
A Some predefined methods, that can be set with setMethod(const std::string & key).
Definition Accumulator.h:263
Class for multi-channel digital images. Supports dynamic typing with base types (char,...
Definition Image.h:183
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