summaryrefslogtreecommitdiff
path: root/steer_accumulator.cpp
blob: 65ce38b5d92d66eaeab1e170aba346c86194c287 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "steer_accumulator.h"

using namespace std;

void SteerAccumulator::add_steerer(SteerIface* steerer)
{
	steerers.push_back(steerer);
}

void SteerAccumulator::process_image(const Mat& img)
{
	for (list<SteerIface*>::iterator it = steerers.begin(); it!=steerers.end(); ++it)
		(*it)->process_image(img);
}

double SteerAccumulator::get_steer_data()
{
	double sum=0;
	for (list<SteerIface*>::iterator it = steerers.begin(); it!=steerers.end(); ++it)
		sum+=(*it)->get_steer_data() * (*it)->get_confidence();
	
	double confidence = get_confidence();
	
	return (confidence==0) ? 0.0 : (sum/confidence);
}

double SteerAccumulator::get_confidence()
{
	double sum=0;
	for (list<SteerIface*>::iterator it = steerers.begin(); it!=steerers.end(); ++it)
		sum+=(*it)->get_confidence();
	return sum;
}