
modifié : include/ArrayTree/ArrayTreeBuilder.hpp modifié : include/ArrayTree/ArrayTreeBuilder.tpp modifié : include/ArrayTree/Border.hpp modifié : include/ArrayTree/Border.tpp modifié : include/ArrayTree/GraphWalker.hpp modifié : include/ArrayTree/GraphWalker.tpp modifié : include/ArrayTree/Leader.tpp modifié : include/ArrayTree/triskeleArrayTreeBase.hpp modifié : include/ArrayTree/triskeleArrayTreeBase.tpp modifié : include/AttributeProfiles.hpp modifié : include/AttributeProfiles.tpp modifié : include/Attributes/AreaAttributes.hpp modifié : include/Attributes/AverageAttributes.hpp modifié : include/Attributes/MoIAttributes.hpp modifié : include/Attributes/SDAttributes.hpp modifié : include/Attributes/WeightAttributes.hpp modifié : include/Attributes/XYAttributes.hpp modifié : include/CompAttribute.hpp modifié : include/CompAttribute.tpp modifié : include/Tree.hpp modifié : include/Tree.tpp modifié : include/TreeStats.hpp modifié : include/triskeleBase.hpp modifié : include/triskeleBase.tpp modifié : include/triskeleDebug.hpp modifié : src/Tree.cpp modifié : src/TreeStats.cpp modifié : src/apGenerator.cpp
83 lines
2.3 KiB
C++
83 lines
2.3 KiB
C++
#ifndef _OTB_TRISKELE_TREE_STATS_HPP
|
|
#define _OTB_TRISKELE_TREE_STATS_HPP
|
|
|
|
#include <iostream>
|
|
|
|
#include <boost/accumulators/accumulators.hpp>
|
|
#include <boost/accumulators/statistics/stats.hpp>
|
|
#include <boost/accumulators/statistics/sum.hpp>
|
|
#include <boost/accumulators/statistics/count.hpp>
|
|
#include <boost/accumulators/statistics/min.hpp>
|
|
#include <boost/accumulators/statistics/max.hpp>
|
|
#include <boost/accumulators/statistics/mean.hpp>
|
|
|
|
#include "ArrayTree/triskeleArrayTreeBase.hpp"
|
|
|
|
namespace otb {
|
|
namespace triskele {
|
|
|
|
using namespace otb::triskele::arrayTree;
|
|
using namespace std;
|
|
namespace ba = boost::accumulators;
|
|
typedef ba::accumulator_set<DimImg, ba::stats<ba::tag::count,
|
|
ba::tag::mean,
|
|
ba::tag::min,
|
|
ba::tag::max> > TreeStatsDim;
|
|
typedef ba::accumulator_set<double, ba::stats<ba::tag::sum,
|
|
ba::tag::count,
|
|
ba::tag::mean,
|
|
ba::tag::min,
|
|
ba::tag::max> > TreeStatsDouble;
|
|
|
|
enum TimeType {
|
|
buildTreeStats,
|
|
areaStats,
|
|
averageStats,
|
|
xyStats,
|
|
moiStats,
|
|
sdStats,
|
|
filteringStats,
|
|
copyImageStats,
|
|
readStats,
|
|
writeStats,
|
|
allStats,
|
|
|
|
TimeTypeCard
|
|
};
|
|
|
|
class TreeStats {
|
|
public :
|
|
//void reset ();
|
|
inline void addDim (const TreeType &treeType, const DimImg& leafCount, const DimImg& compCount);
|
|
inline void addTime (const TimeType &timeType, const double &duration);
|
|
|
|
// nice ostream
|
|
struct CPrintDim {
|
|
const TreeStats &treeStats;
|
|
CPrintDim (const TreeStats &treeStats);
|
|
ostream &print (ostream &out) const;
|
|
ostream &print (ostream &out, const TreeStatsDim stats[], const string &msg) const;
|
|
};
|
|
CPrintDim printDim () const;
|
|
friend ostream &operator << (ostream& out, const CPrintDim &cpd) { return cpd.print (out); }
|
|
|
|
struct CPrintTime {
|
|
const TreeStats &treeStats;
|
|
CPrintTime (const TreeStats &treeStats);
|
|
ostream &print (ostream &out) const;
|
|
};
|
|
CPrintTime printTime () const;
|
|
friend ostream &operator << (ostream& out, const CPrintTime &cpt) { return cpt.print (out); }
|
|
private :
|
|
|
|
TreeStatsDim leavesStats[TreeTypeCard], compStats[TreeTypeCard];
|
|
TreeStatsDouble timeStats[TimeTypeCard];
|
|
};
|
|
static TreeStats globalTreeStats;
|
|
|
|
#include "TreeStats.tpp"
|
|
} // triskele
|
|
} // otb
|
|
|
|
#endif // _OTB_TRISKELE_TREE_HPP
|