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"
90 DEVIATION =
's'|QUALITY,
91 WEIGHT_DS =
'W'|QUALITY,
92 COUNT_DS =
'C'|QUALITY,
93 DEVIATION_DS =
'S'|QUALITY
96 typedef std::list<FieldType> FieldList;
101 return static_cast<char>(field & 127);
109 return (field & QUALITY) != 0;
115 return (field & DATA_SPECIFIC) != 0;
119 void getFields(
const std::string & fieldStr, FieldList & fieldList);
122 void createFieldList(
const std::string & fieldChars, FieldList & fieldList);
159 void setMethod(
const std::string & method);
162 void setMethod(
const std::string & name,
const std::string & params);
174 bool isMethodSet()
const {
184 AccumulationMethod & getMethod() {
197 void add(
const size_t i,
double value,
double weight) {
203 void add(
const size_t i,
double value,
double weight,
unsigned int count) {
258 std::ostream & toStream(std::ostream & ostr)
const;
295std::ostream & operator<<(std::ostream &ostr,
const Accumulator & accumulator){
296 return accumulator.Accumulator::toStream(ostr);
virtual const std::string & getName() const
Return the name of an instance.
Definition BeanLike.h:82
Two-way mapping between strings and objects of template class T.
Definition Dictionary.h:63
void getValues(std::ostream &ostr) const
Dumps the values.
Definition SmartMap.h:353
General-purpose image compositing.
Definition AccumulationArray.h:112
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:65
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 Accumulator.h:76
void setMethod(const AccumulationMethod &method)
Copies the method and its parameters.
Definition Accumulator.h:169
static bool isSpecific(FieldType field)
Future option to mark scaled/normalized etc.
Definition Accumulator.h:114
static void createFieldList(const std::string &fieldChars, FieldList &fieldList)
Definition Accumulator.cpp:78
void add(const size_t i, double value, double weight, unsigned int count)
Adds decoded data that applies natural scaling.
Definition Accumulator.h:203
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:245
FieldType
Definition Accumulator.h:84
void setMethod(const std::string &method)
Set method to some of the predefined methods.
Definition Accumulator.cpp:193
Accumulator()
Definition Accumulator.h:133
void add(const size_t i, double value, double weight)
Adds decoded data that applies natural scaling.
Definition Accumulator.h:197
AccumulationArray accArray
Todo: export.
Definition Accumulator.h:130
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:211
AccumulationMethod undefinedMethod
A Some predefined methods, that can be set with setMethod(const std::string & key).
Definition Accumulator.h:267
Class for multi-channel digital images. Supports dynamic typing with base types (char,...
Definition Image.h:193
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