My Project
seriesstats.hh
Go to the documentation of this file.
1/* -*- mia-c++ -*-
2 *
3 * This file is part of MIA - a toolbox for medical image analysis
4 * Copyright (c) Leipzig, Madrid 1999-2017 Gert Wollny
5 *
6 * MIA is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with MIA; if not, see <http://www.gnu.org/licenses/>.
18 *
19 */
20
21#ifndef mia_2d_seriesstats_hh
22#define mia_2d_seriesstats_hh
23
24
25#include <mia/core/filter.hh>
26
28
35 double sum;
37 double sumsq;
39 double mean;
41 double variation;
43 double min;
45 double max;
47 size_t n;
48};
49
60{
61public:
63
69 template <typename Container>
70 void operator () ( const Container& data);
71
72
78private:
79 mutable SIntensityStats m_stats;
80 mutable bool m_stats_valid;
81};
82
83template <typename Container>
84void FIntensityStatsAccumulator::operator () ( const Container& data)
85{
86 m_stats_valid = false;
87 m_stats.n += data.size();
88
89 for (auto i = data.begin(); i != data.end(); ++i) {
90 m_stats.sum += *i;
91 m_stats.sumsq += *i * *i;
92
93 if (m_stats.min > *i)
94 m_stats.min = *i;
95
96 if (m_stats.max < *i)
97 m_stats.max = *i;
98 }
99}
100
102
103#endif
Functor to accumulate statistics of data.
const SIntensityStats & get_result() const
void operator()(const Container &data)
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
Definition defines.hh:33
#define EXPORT_CORE
Macro to manage Visual C++ style dllimport/dllexport.
Definition defines.hh:101
#define NS_MIA_END
conveniance define to end the mia namespace
Definition defines.hh:36
data structure to store te results of a statistical analyis of images
size_t n
number of values
double sum
Sum of all values.
double min
minimum value
double variation
variation of the values
double mean
mean of all values
double max
masimum values
double sumsq
Sum of the squares of all values.
base class for all filer type functors.