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" 
   90        DEVIATION = 
's'|QUALITY,  
 
   91        WEIGHT_DS = 
'W'|QUALITY,  
 
   92        COUNT_DS  = 
'C'|QUALITY,  
 
   93        DEVIATION_DS = 
'S'|QUALITY  
 
 
  101    typedef std::list<FieldType> FieldList;
 
  106        return static_cast<char>(field & 127);
 
  114        return (field & QUALITY) != 0;
 
  120        return (field & DATA_SPECIFIC) != 0;
 
 
  124    void getFields(
const std::string & fieldStr, FieldList & fieldList);
 
  127    void createFieldList(
const std::string & fieldChars, FieldList & fieldList);
 
  160    void setMethod(
const std::string & method);
 
  163    void setMethod(
const std::string & name, 
const std::string & params);
 
  175    bool isMethodSet()
 const {
 
  185    AccumulationMethod & getMethod() {
 
  198    void add(
const size_t i, 
double value, 
double weight) {
 
 
  204    void add(
const size_t i, 
double value, 
double weight, 
unsigned int count) {
 
 
  259    std::ostream & toStream(std::ostream & ostr) 
const;
 
 
  297std::ostream & operator<<(std::ostream &ostr, 
const Accumulator & accumulator){
 
  298    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:170
 
static bool isSpecific(FieldType field)
Future option to mark scaled/normalized etc.
Definition Accumulator.h:119
 
static void createFieldList(const std::string &fieldChars, FieldList &fieldList)
Definition Accumulator.cpp:83
 
void add(const size_t i, double value, double weight, unsigned int count)
Adds decoded data that applies natural scaling.
Definition Accumulator.h:204
 
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:246
 
FieldType
Definition Accumulator.h:84
 
void setMethod(const std::string &method)
Set method to some of the predefined methods.
Definition Accumulator.cpp:198
 
Accumulator()
Definition Accumulator.h:134
 
void add(const size_t i, double value, double weight)
Adds decoded data that applies natural scaling.
Definition Accumulator.h:198
 
AccumulationArray accArray
Todo: export.
Definition Accumulator.h:131
 
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:216
 
AccumulationMethod undefinedMethod
A Some predefined methods, that can be set with setMethod(const std::string & key).
Definition Accumulator.h:268
 
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