40#ifndef CORTEX_COLUMN_REGION_QUALITY_HH_INCLUDED
41#define CORTEX_COLUMN_REGION_QUALITY_HH_INCLUDED
43#include <cartodata/volume/volume.h>
60 float m100,
float m010,
float m001,
62 float m110,
float m020,
63 float m101,
float m011,
float m002)
70 void update(
float x,
float y,
float z)
110 template <
typename Tlabel>
113 template <
typename Tlabel>
116 template <
class Po
intIterator>
118 const PointIterator& point_it_end)
const;
127 m_touches_CSF(false),
128 m_touches_white(false)
164 std::size_t m_region_size;
166 bool m_touches_white;
171 template <
class Po
intIterator>
173 const PointIterator& point_it_end)
const;
174 template <
typename Tlabel>
183 float m_pseudo_area_cutoff;
const MomentAccumulator & white_moments() const
MomentAccumulator & CSF_moments()
MomentAccumulator & white_moments()
Cache(const MomentAccumulator &CSF_moments, const MomentAccumulator &white_moments, std::size_t region_size, bool touches_CSF, bool touches_white)
std::size_t region_size() const
std::size_t & region_size()
Cache operator+(const Cache &other) const
bool touches_white() const
const MomentAccumulator & CSF_moments() const
Cache cache(const PointIterator &point_it_begin, const PointIterator &point_it_end) const
void setShapeParametres(float goal_diameter)
float pseudo_area(const Cache &) const
CortexColumnRegionQuality(const carto::VolumeRef< float > &CSF_projections, const carto::VolumeRef< float > &white_projections, const carto::VolumeRef< int16_t > &classif)
static float default_goal_diameter()
float fusion_ordering(const LabelVolume< Tlabel > &, Tlabel, Tlabel) const
bool want_fusion(const Cache &) const
float fusion_ordering(const Cache &) const
Cache cache(const LabelVolume< Tlabel > &, Tlabel) const
float fusion_ordering(const PointIterator &point_it_begin, const PointIterator &point_it_end) const
float fusion_ordering(const LabelVolume< Tlabel > &, Tlabel) const
MomentAccumulator(float m000, float m100, float m010, float m001, float m200, float m110, float m020, float m101, float m011, float m002)
void update(float x, float y, float z)
MomentAccumulator operator+(const MomentAccumulator &other) const