Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Accumulator Class Reference

#include <Accumulator.h>

Inheritance diagram for Accumulator:
Inheritance graph
[legend]
Collaboration diagram for Accumulator:
Collaboration graph
[legend]

Public Types

enum  FieldType {
  DATA_SPECIFIC = 32 , QUALITY = 256 , DATA = 'd' , WEIGHT = 'w'|QUALITY ,
  COUNT = 'c'|QUALITY , DEVIATION = 's'|QUALITY , WEIGHT_DS = 'W'|QUALITY , COUNT_DS = 'C'|QUALITY ,
  DEVIATION_DS = 'S'|QUALITY
}
 
typedef std::list< FieldTypeFieldList
 
typedef drain::EnumDict< FieldType >::dict_t dict_t
 

Public Member Functions

 Accumulator ()
 
 Accumulator (const Accumulator &acc)
 
void setMethod (const std::string &method)
 Set method to some of the predefined methods.
 
void setMethod (const std::string &name, const std::string &params)
 Set method to some of the predefined methods.
 
void setMethod (const AccumulationMethod &method)
 Copies the method and its parameters.
 
bool isMethodSet () const
 
const AccumulationMethodgetMethod () const
 
AccumulationMethodgetMethod ()
 
void add (const size_t i, double value, double weight)
 Adds decoded data that applies natural scaling.
 
void add (const size_t i, double value, double weight, unsigned int count)
 Adds decoded data that applies natural scaling.
 
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.
 
void addData (const Image &src, const Image &srcQuality, const AccumulationConverter &converter, double weight=1.0, int iOffset=0, int jOffset=0)
 Add (accumulate) data weighted with input quality.
 
void addData (const Image &src, const Image &srcQuality, const Image &srcCount, const AccumulationConverter &converter)
 Add (accumulate) data weighted with input quality and count; each data(i,j) contributes count(i,j) times.
 
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.
 
void extractField (FieldType field, const AccumulationConverter &converter, Image &dst, const drain::Rectangle< int > &crop) const
 
virtual std::ostream & toStream (std::ostream &ostr) const
 

Static Public Member Functions

static char getFieldChar (FieldType field)
 
static FieldType getField (char field)
 
static bool isQuality (FieldType field)
 
static bool isSpecific (FieldType field)
 Future option to mark scaled/normalized etc.
 
static void getFields (const std::string &fieldStr, FieldList &fieldList)
 
static void createFieldList (const std::string &fieldChars, FieldList &fieldList)
 

Public Attributes

AccumulationArray accArray
 Todo: export.
 

Static Public Attributes

static const dict_t dict
 

Protected Member Functions

void initDst (const AccumulationConverter &coder, Image &dst, drain::Rectangle< int > &cropArea) const
 

Protected Attributes

AccumulationMethod undefinedMethod
 A Some predefined methods, that can be set with setMethod(const std::string & key).
 
AccumulationMethodmethodPtr
 

Detailed Description

Accumulator contains five built-in accumulation methods (principles):

  1. overwrite
  2. maximum
  3. average
  4. weighted average
  5. maximum weight The methods can be extended user defined methods with addMethod() .

Member Enumeration Documentation

◆ FieldType

enum FieldType

FIX: DS = DataSet-specific - forward definition

Constructor & Destructor Documentation

◆ Accumulator()

Accumulator ( )
inline

TODO: a static map?

Member Function Documentation

◆ addData() [1/3]

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.

Parameters
src- input data

◆ addData() [2/3]

void addData ( const Image src,
const Image srcQuality,
const AccumulationConverter converter,
double  weight = 1.0,
int  iOffset = 0,
int  jOffset = 0 
)

Add (accumulate) data weighted with input quality.

Parameters
src- input data
srcQuality- quality field of input data

◆ addData() [3/3]

void addData ( const Image src,
const Image srcQuality,
const Image srcCount,
const AccumulationConverter converter 
)

Add (accumulate) data weighted with input quality and count; each data(i,j) contributes count(i,j) times.

Parameters
src- input data
srcQuality- quality field of input data
srcCount- counts of input data (makes difference in resulting weights)

Count is bypassed when necessary; for example, when the accumulation method is MAXIMUM.

◆ createFieldList()

void createFieldList ( const std::string &  fieldChars,
FieldList &  fieldList 
)
static

TODO: add: static bool getField(char field){ looping } to Accumulator

◆ extractField()

void extractField ( char  field,
const AccumulationConverter converter,
Image dst,
const drain::Rectangle< int > &  crop 
) const
inline

Extracts the accumulated quantity or secondary quantities like weight and standard deviation.

Parameters
field- data layer to be extracted
  • d = data;
  • w = weight (8bit uchar); W = with same storage type as data
  • c = count (8bit uchar);
  • s = standard deviation, unscaled

◆ setMethod()

void setMethod ( const AccumulationMethod method)
inline

Copies the method and its parameters.

That is, does not copy the target (accumulator &). This limits to those already registered in AccMethodBank.

Member Data Documentation

◆ dict

const Accumulator::dict_t dict
static
Initial value:
= {
DRAIN_ENUM_ENTRY(Accumulator::FieldType, DATA),
DRAIN_ENUM_ENTRY(Accumulator::FieldType, WEIGHT),
DRAIN_ENUM_ENTRY(Accumulator::FieldType, COUNT),
DRAIN_ENUM_ENTRY(Accumulator::FieldType, DEVIATION),
}
FieldType
Definition Accumulator.h:84

The documentation for this class was generated from the following files: