bioprocessing 6.0.4
cah.h
Go to the documentation of this file.
1/* Copyright (C) 2000-2013 CEA
2 *
3 * This software and supporting documentation were developed by
4 * bioPICSEL
5 * CEA/DSV/I²BM/MIRCen/LMN, Batiment 61,
6 * 18, route du Panorama
7 * 92265 Fontenay-aux-Roses
8 * France
9 */
10
11#ifndef AIMS_CLASSIFICATION_CAH_H
12#define AIMS_CLASSIFICATION_CAH_H
13
14#include <aims/vector/vector.h>
15#include <aims/data/data_g.h>
16#include <aims/classification/individuals.h>
17#include <vector>
18#include <aims/math/discriminantanalysis.h>
19
20namespace aims{
21 class ProbabilisticPcaElement ;
22} ;
23
24template <typename T>
25class Element{
26 public:
27 // Constructeur :
28 Element( int number, int card, const std::set<int>& constitutedFrom = std::set<int>() ) :
30 {
31 if( _constitutedFrom.empty() )
32 _constitutedFrom.insert(number) ;
33 }
34 virtual ~Element(){}
35
36 int number() const { return _number ;}
37 void setNumber( int number ) { _number = number ;}
38
39 int card() const { return _card ;}
40 void setCard( int card ) { _card = card ;}
41
42 const std::set<int>& constitutedFrom() const { return _constitutedFrom ; }
43
44 virtual float distanceTo( Element<T> * other,
45 const std::vector< std::list< Point3d > >& classes,
46 const AimsData<T>& data, const AimsData<float>& initDistances ) = 0 ;
47
48 virtual Element<T> * agregateTo( Element<T> * other,
49 const std::vector< std::list< Point3d > >& classes,
50 const AimsData<T>& data, const AimsData<float>& initDistances, int newNb = -1 ) = 0 ;
51
52 protected:
54 int _card;
55 std::set<int> _constitutedFrom ;
56} ;
57
58template <typename T>
59class BaryElement : public Element<T>{
60 public:
61 // Constructeur :
62 BaryElement( int card, const aims::Individuals<float>& bary,
63 const std::set<int>& constitutedFrom = std::set<int>(), int number = -1 ) ;
64 BaryElement( const std::vector<std::list< Point3d > >& classes,
65 const AimsData<T>& data,
66 const std::set<int>& constitutedFrom = std::set<int>(), int number = -1 ) ;
67 virtual ~BaryElement(){}
68
69 const std::vector<float> & baryValue() const { return _bary.value() ; }
70 const Point3df& baryPosition() const { return _bary.position() ; }
71
72 virtual float distanceTo( Element<T> * other,
73 const std::vector< std::list< Point3d > >& classes,
74 const AimsData<T>& data, const AimsData<float>& initDistances ) ;
75
76 virtual Element<T> * agregateTo( Element<T> * other,
77 const std::vector< std::list< Point3d > >& classes,
78 const AimsData<T>& data, const AimsData<float>& initDistances, int newNb = -1 ) ;
79
80 private:
81 void computeBary( const std::vector<std::list< Point3d > >& classes,
82 const AimsData<T>& data ) ;
83
84 aims::Individuals<float> _bary ;
85 //Individuals<T> _var ;
86} ;
87
88template <typename T>
89class PcaElement : public Element<T>{
90 public:
91 // Constructeur :
92 PcaElement( const std::vector<std::list< Point3d > >& classes,
93 const AimsData<T>& data, int numberOfSignificantVps,
94 const std::set<int>& constitutedFrom = std::set<int>(), int number = -1 ) ;
95 virtual ~PcaElement(){}
96
97
98 virtual float distanceTo( Element<T> * other,
99 const std::vector< std::list< Point3d > >& classes,
100 const AimsData<T>& data, const AimsData<float>& initDistances ) ;
101
102 virtual Element<T> * agregateTo( Element<T> * other,
103 const std::vector< std::list< Point3d > >& classes,
104 const AimsData<T>& data, const AimsData<float>& initDistances, int newNb = -1 ) ;
105 float unreconstructedInertia() ;
107 float varReconstructionError() ;
108
109 const AimsData<float>& errorMatrix( ) { return _errorMatrix ; }
110
111 protected:
112 void computeReconstructionError( const std::vector< std::list< Point3d > >& classes,
113 const AimsData<T>& data ) ;
114 float error( const Point3d& p, const AimsData<T>& data ) ;
117
118 AimsData<float> _errorMatrix ;
119 std::vector<float> _mean ;
120
123 //TO DEFINE
124 //Individual<T> _varIndividual ;
125} ;
126
127template <typename T>
129 public:
130 // Constructeur :
131 PcaReprocReconsErrorElement( const std::vector<std::list< Point3d > >& classes,
132 const AimsData<T>& data, int numberOfSignificantVps,
133 const std::set<int>& constitutedFrom = std::set<int>(), int number = -1 ) ;
135
136
137 virtual float distanceTo( Element<T> * other,
138 const std::vector< std::list< Point3d > >& classes,
139 const AimsData<T>& data, const AimsData<float>& initDistances ) ;
140
141 virtual Element<T> * agregateTo( Element<T> * other,
142 const std::vector< std::list< Point3d > >& classes,
143 const AimsData<T>& data, const AimsData<float>& initDistances, int newNb = -1 ) ;
144
145 const AimsData<float>& errorMatrix( ) { return _errorMatrix ; }
146
147 float unreconstructedInertia() ;
149 float varReconstructionError() ;
150
151 private:
152 void computeReconstructionError( const std::vector< std::list< Point3d > >& classes,
153 const AimsData<T>& data ) ;
154 float _meanReconstructionError ;
155 float _varReconstructionError ;
156
157 AimsData<float> _errorMatrix ;
158 std::vector<float> _mean ;
159
160 float _unreconstructedInertia ;
161 int _numberOfSignificantVps ;
162 //TO DEFINE
163 //Individual<T> _varIndividual ;
164} ;
165
166template <typename T>
167class PPcaElement : public Element<T>{
168 public:
169 // Constructeur :
170 PPcaElement( const std::vector<std::list< Point3d > >& classes,
171 const AimsData<T>& data, int numberOfSignificantVps,
172 const std::set<int>& constitutedFrom = std::set<int>(), int number = -1 ) ;
173 virtual ~PPcaElement(){}
174
175
176 virtual float distanceTo( Element<T> * other,
177 const std::vector< std::list< Point3d > >& classes,
178 const AimsData<T>& data, const AimsData<float>& initDistances ) ;
179
180 virtual Element<T> * agregateTo( Element<T> * other,
181 const std::vector< std::list< Point3d > >& classes,
182 const AimsData<T>& data, const AimsData<float>& initDistances, int newNb = -1 ) ;
183
184/* const AimsData<double> meanSignal() const { return _meanSignal ; } */
185 aims::ProbabilisticPcaElement* ppca() { return _ppcaElement ; }
186
187 private:
188 void computeReconstructionError( const std::vector< std::list< Point3d > >& classes,
189 const AimsData<T>& data ) ;
190
191 AimsData<double> _meanSignal ;
192 aims::ProbabilisticPcaElement * _ppcaElement ;
193
194 int _numberOfSignificantVps ;
195} ;
196
197template <typename T>
199 public:
200 // Constructeur :
201 Max2By2DistanceElement( const std::set<int>& constitutedFrom = std::set<int>(), int number = -1 ) ;
203
204
205 virtual float distanceTo( Element<T> * other,
206 const std::vector< std::list< Point3d > >& classes,
207 const AimsData<T>& data, const AimsData<float>& initDistances ) ;
208
209 virtual Element<T> * agregateTo( Element<T> * other,
210 const std::vector< std::list< Point3d > >& classes,
211 const AimsData<T>& data, const AimsData<float>& initDistances, int newNb = -1 ) ;
212
213 private:
214} ;
215
216template <typename T>
217class SCKBDistanceElement : public Element<T>{
218 public:
219 // Constructeur :
220 SCKBDistanceElement( /*const std::vector<float> * classMaximumMoment, */
221 const AimsData<double> * maxMomentValueRatios,
222 const AimsData<double> * kinModel2by2Distances,
223 const AimsData<double> * interactionSurf,
224 const std::vector<double> * labelsVolumes,
225 float spatialregularizationWeight, float timeOfMaximumWeight,
226 float meanDist2By2, float varDist2By2, float meanSurfVolRatio,
227 float varSurfVolRatio, float meanMaxMomentRatio, float varMaxMomentRatio,
228 const std::set<int>& constitutedFrom = std::set<int>(), int number = -1 ) :
229 Element<T>( number, 0, constitutedFrom ), _maxMomentValueRatios(maxMomentValueRatios),
230 _kinModel2by2Distances(kinModel2by2Distances),
231 _interactionSurf(interactionSurf), _labelsVolumes(labelsVolumes),
232 _spatialregularizationWeight(spatialregularizationWeight), _timeOfMaximumWeight(timeOfMaximumWeight),
233 _meanDist2By2(meanDist2By2), _varDist2By2(varDist2By2), _meanSurfVolRatio(meanSurfVolRatio),
234 _varSurfVolRatio(varSurfVolRatio), _meanMaxMomentRatio(meanMaxMomentRatio), _varMaxMomentRatio(varMaxMomentRatio)
235 {}
236
238
239
240 virtual float distanceTo( Element<T> * other,
241 const std::vector< std::list< Point3d > >& classes,
242 const AimsData<T>& data, const AimsData<float>& initDistances ) ;
243
244 virtual Element<T> * agregateTo( Element<T> * other,
245 const std::vector< std::list< Point3d > >& classes,
246 const AimsData<T>& data, const AimsData<float>& initDistances, int newNb = -1 ) ;
247
248 private:
249 //const std::vector<float> * _classMaximumMoment ;
250 const AimsData<double> * _maxMomentValueRatios ;
251 const AimsData<double> * _kinModel2by2Distances ;
252 const AimsData<double> * _interactionSurf ;
253 const std::vector<double> * _labelsVolumes ;
254 float _spatialregularizationWeight ;
255 float _timeOfMaximumWeight ;
256
257 float _meanDist2By2 ;
258 float _varDist2By2 ;
259 float _meanSurfVolRatio ;
260 float _varSurfVolRatio ;
261 float _meanMaxMomentRatio ;
262 float _varMaxMomentRatio ;
263} ;
264
265template <typename T>
267 public:
268 CahElementFactory( const std::vector< std::list< Point3d > >& classes = std::vector< std::list< Point3d > >(),
269 const AimsData<T>& data = AimsData<T>() ) ;
270 virtual ~CahElementFactory( ) ;
271
272 virtual Element<T> * creator( int n ) const = 0 ;
273 virtual std::list< Element<T>* > creator() const ;
274
275 virtual std::string methodType() const = 0 ;
276 const std::vector< std::list< Point3d > >& classes() const { return _classes ; }
277 const AimsData<T>& data() const { return _data ; }
278
279 virtual bool initDistanceAlreadyComputed() const { return false ; }
280 virtual const AimsData<float>* initDistances() const { return 0 ; }
281
282 protected:
283 const std::vector< std::list< Point3d > >& _classes ;
284 const AimsData<T>& _data ;
285} ;
286
287template <typename T>
289 public:
290 BaryCahElementFactory( const std::vector< std::list< Point3d > >& classes = std::vector< std::list< Point3d > >(),
291 const AimsData<T>& data = AimsData<T>() ) ;
292 virtual ~BaryCahElementFactory( ) ;
293
294 virtual Element<T> * creator( int n ) const ;
295
296 virtual std::string methodType() const { return "Barycenter" ;}
297 private:
298} ;
299
300template <typename T>
302 public:
303 PcaCahElementFactory( int nbOfSignificantVps,
304 const std::vector< std::list< Point3d > >& classes = std::vector< std::list< Point3d > >(),
305 const AimsData<T>& data = AimsData<T>() ) ;
306 virtual ~PcaCahElementFactory( ) ;
307
308 virtual Element<T> * creator( int n ) const ;
309
310 virtual std::string methodType() const { return "Pca" ;}
311
312 private:
313 int _nbOfSignificantVps ;
314} ;
315
316template <typename T>
318 public:
319 PPcaCahElementFactory( int nbOfSignificantVps,
320 const std::vector< std::list< Point3d > >& classes = std::vector< std::list< Point3d > >(),
321 const AimsData<T>& data = AimsData<T>() ) ;
322 virtual ~PPcaCahElementFactory( ) ;
323
324 virtual Element<T> * creator( int n ) const ;
325
326 virtual std::string methodType() const { return "PPca" ;}
327
328 private:
329 int _nbOfSignificantVps ;
330} ;
331
332template <typename T>
334 public:
335 Max2By2DistanceCahElementFactory( const AimsData<float>& initDistances ) ;
337
338 virtual std::list< Element<T>* > creator() const ;
339 virtual Element<T> * creator( int n ) const ;
340
341 virtual std::string methodType() const { return "Max2By2Distance" ;}
342
343 virtual bool initDistanceAlreadyComputed() const { return true ; }
344 const AimsData<float>* initDistances() const { return &_initDistances ; } ;
345
346
347 private:
348 AimsData<float> _initDistances ;
349 int _nbClasses ;
350} ;
351
352//Spatial coherence kinetics based segmentation method
353template <typename T>
355 public:
356 SCKBDistanceCahElementFactory( const std::vector<std::list<Point3d> >& classes,
357 const std::vector<aims::DiscriminantAnalysisElement*>& classesKinDescription,
358 const AimsData<int>& locMap,
359 const std::vector<short>& unfusionedLabels,
360 const std::vector<float>& classMaximaMoment,
361 float spatialregularizationWeight = 1.,
362 float timeOfMaximumWeight = 0.5 ) ;
364 {
365 delete _classMaximumMoment ;
366 delete _maxMomentValueRatios ;
367 delete _antiCorrelatedMeans ;
368 delete _kinModel2by2Distances ;
369 delete _interactionSurf ;
370 delete _labelsVolumes ;
371 }
372
373 virtual Element<T> * creator( int n ) const ;
374
375 virtual std::string methodType() const { return "SCKBDistance" ;}
376
377 virtual bool initDistanceAlreadyComputed() const { return false ; }
378 const AimsData<float>* initDistances() const { return 0 ; } ;
379
380private:
381 std::vector<float> * _classMaximumMoment ;
382 AimsData<double> * _maxMomentValueRatios ;
383 AimsData<char> * _antiCorrelatedMeans ;
384 AimsData<double> * _kinModel2by2Distances ;
385 AimsData<double> * _interactionSurf ;
386 std::vector<double> * _labelsVolumes ;
387 float _spatialregularizationWeight ;
388 float _timeOfMaximumWeight ;
389 int _nbClasses ;
390 float _meanDist2By2 ;
391 float _varDist2By2 ;
392 float _meanSurfVolRatio ;
393 float _varSurfVolRatio ;
394 float _meanMaxMomentRatio ;
395 float _varMaxMomentRatio ;
396} ;
397
398template <typename T>
400public:
401 PcaReprocReconsErrorCahElementFactory( int nbOfSignificantVps,
402 const std::vector< std::list< Point3d > >& classes = std::vector< std::list< Point3d > >(),
403 const AimsData<T>& data = AimsData<T>() ) ;
405
406 virtual Element<T> * creator( int n ) const ;
407
408 virtual std::string methodType() const { return "PcaReprocReconsError" ;}
409
410private:
411 int _nbOfSignificantVps ;
412} ;
413
414template <typename T>
415class Cah
416{
417public:
418 //
419 Cah( const CahElementFactory<T> * method ) ;
421
422
423 // void addElement(std::vector<double> , int);
424 bool addElement(Element<T> * el);
425 void initialisationDist();
426 void oneStep(int);
427
428 const std::vector< std::pair<Point2d, float> >& doit( ) ;
429 const std::vector< std::pair<Point2d, float> >& result( ) {
430 if( _result.empty() ) return doit() ;
431 return _result ;
432 }
433 std::vector<Point2d> cut( const std::vector< std::pair<Point2d, float> >& res, int );
434 std::vector<Point2d> distanceCut( const std::vector< std::pair<Point2d, float> >& res, float );
435
436 std::vector<Point2d> maxCurvatureCut( const std::vector< std::pair<Point2d, float> >& res );
437
438 void save( const std::string& name ) ;
439 const std::vector< std::pair<Point2d, float> >& load( const std::string& name ) ;
440 const std::vector<std::set<short> >& newAgregateConstitution() const { return _newAgregatesConstitution ; }
441 private:
442
443 // Méthodes privées :
444 //float distanceW(Element *element1, Element *element2);
445 std::vector<int> leaves(int);
446 std::vector<int> leaves(float);
447 void Proc(int, std::vector<int>& );
448
449
450
451 // Attributs privées :
452 const std::vector< std::list< Point3d > >& _classes ;
453 const AimsData<T>& _data ;
454 std::list<Element<T>*> _listeN;
455 std::multimap<float, Point2d> _mMap;
456 std::vector< std::pair<Point2d, float> > _result;
457
458
459 std::vector< std::set<short> > _newAgregatesConstitution ;
460 AimsData<float> _distanceBetweenInitialElements ;
461 unsigned int _m; //nombre total d'individus
462/* std::vector<int> _uneClasse; //variable locale utile */
463 bool _canAddElement ;
464
465 bool _initDistancesAlreadyComputed ;
466};
467
468
469
470#endif
virtual ~BaryCahElementFactory()
Definition cah_d.h:788
BaryCahElementFactory(const std::vector< std::list< Point3d > > &classes=std::vector< std::list< Point3d > >(), const AimsData< T > &data=AimsData< T >())
Definition cah_d.h:784
virtual std::string methodType() const
Definition cah.h:296
const std::vector< float > & baryValue() const
Definition cah.h:69
virtual Element< T > * agregateTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances, int newNb=-1)
Definition cah_d.h:100
virtual float distanceTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances)
Definition cah_d.h:82
virtual ~BaryElement()
Definition cah.h:67
const Point3df & baryPosition() const
Definition cah.h:70
BaryElement(int card, const aims::Individuals< float > &bary, const std::set< int > &constitutedFrom=std::set< int >(), int number=-1)
Definition cah_d.h:21
virtual std::string methodType() const =0
virtual Element< T > * creator(int n) const =0
virtual bool initDistanceAlreadyComputed() const
Definition cah.h:279
const std::vector< std::list< Point3d > > & classes() const
Definition cah.h:276
const std::vector< std::list< Point3d > > & _classes
Definition cah.h:283
virtual ~CahElementFactory()
Definition cah_d.h:770
virtual const AimsData< float > * initDistances() const
Definition cah.h:280
const AimsData< T > & _data
Definition cah.h:284
virtual std::list< Element< T > * > creator() const
Definition cah_d.h:775
const AimsData< T > & data() const
Definition cah.h:277
CahElementFactory(const std::vector< std::list< Point3d > > &classes=std::vector< std::list< Point3d > >(), const AimsData< T > &data=AimsData< T >())
Definition cah_d.h:766
void save(const std::string &name)
Definition cah_d.h:1619
void initialisationDist()
Definition cah_d.h:1303
std::vector< Point2d > maxCurvatureCut(const std::vector< std::pair< Point2d, float > > &res)
Definition cah_d.h:1582
const std::vector< std::set< short > > & newAgregateConstitution() const
Definition cah.h:440
const std::vector< std::pair< Point2d, float > > & doit()
Definition cah_d.h:1432
void oneStep(int)
Definition cah_d.h:1351
const std::vector< std::pair< Point2d, float > > & load(const std::string &name)
Definition cah_d.h:1654
~Cah()
Definition cah.h:420
std::vector< Point2d > distanceCut(const std::vector< std::pair< Point2d, float > > &res, float)
Definition cah_d.h:1568
std::vector< Point2d > cut(const std::vector< std::pair< Point2d, float > > &res, int)
Definition cah_d.h:1522
bool addElement(Element< T > *el)
Returns false if el ca not be added.
Definition cah_d.h:1289
Cah(const CahElementFactory< T > *method)
Definition cah_d.h:1257
const std::vector< std::pair< Point2d, float > > & result()
Definition cah.h:429
Definition cah.h:25
int number() const
Definition cah.h:36
int _card
Definition cah.h:54
virtual ~Element()
Definition cah.h:34
void setNumber(int number)
Definition cah.h:37
virtual Element< T > * agregateTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances, int newNb=-1)=0
void setCard(int card)
Definition cah.h:40
Element(int number, int card, const std::set< int > &constitutedFrom=std::set< int >())
Definition cah.h:28
int card() const
Definition cah.h:39
virtual float distanceTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances)=0
std::set< int > _constitutedFrom
Definition cah.h:55
const std::set< int > & constitutedFrom() const
Definition cah.h:42
int _number
Definition cah.h:53
virtual std::string methodType() const
Definition cah.h:341
Max2By2DistanceCahElementFactory(const AimsData< float > &initDistances)
Definition cah_d.h:817
virtual ~Max2By2DistanceCahElementFactory()
Definition cah_d.h:824
const AimsData< float > * initDistances() const
Definition cah.h:344
virtual bool initDistanceAlreadyComputed() const
Definition cah.h:343
virtual std::list< Element< T > * > creator() const
Definition cah_d.h:836
virtual float distanceTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances)
Definition cah_d.h:494
Max2By2DistanceElement(const std::set< int > &constitutedFrom=std::set< int >(), int number=-1)
Definition cah_d.h:485
virtual Element< T > * agregateTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances, int newNb=-1)
Definition cah_d.h:546
virtual ~Max2By2DistanceElement()
Definition cah.h:202
virtual std::string methodType() const
Definition cah.h:326
PPcaCahElementFactory(int nbOfSignificantVps, const std::vector< std::list< Point3d > > &classes=std::vector< std::list< Point3d > >(), const AimsData< T > &data=AimsData< T >())
Definition cah_d.h:1225
virtual ~PPcaCahElementFactory()
Definition cah_d.h:1231
virtual ~PPcaElement()
Definition cah.h:173
aims::ProbabilisticPcaElement * ppca()
Definition cah.h:185
virtual Element< T > * agregateTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances, int newNb=-1)
Definition cah_d.h:401
virtual float distanceTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances)
Definition cah_d.h:315
PPcaElement(const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, int numberOfSignificantVps, const std::set< int > &constitutedFrom=std::set< int >(), int number=-1)
Definition cah_d.h:272
PcaCahElementFactory(int nbOfSignificantVps, const std::vector< std::list< Point3d > > &classes=std::vector< std::list< Point3d > >(), const AimsData< T > &data=AimsData< T >())
Definition cah_d.h:799
virtual ~PcaCahElementFactory()
Definition cah_d.h:805
virtual std::string methodType() const
Definition cah.h:310
float _meanReconstructionError
Definition cah.h:115
virtual ~PcaElement()
Definition cah.h:95
float _unreconstructedInertia
Definition cah.h:121
PcaElement(const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, int numberOfSignificantVps, const std::set< int > &constitutedFrom=std::set< int >(), int number=-1)
Definition cah_d.h:137
float error(const Point3d &p, const AimsData< T > &data)
virtual Element< T > * agregateTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances, int newNb=-1)
Definition cah_d.h:253
float _varReconstructionError
Definition cah.h:116
float unreconstructedInertia()
Definition cah_d.h:170
float meanReconstructionError()
Definition cah_d.h:156
const AimsData< float > & errorMatrix()
Definition cah.h:109
AimsData< float > _errorMatrix
Definition cah.h:118
int _numberOfSignificantVps
Definition cah.h:122
std::vector< float > _mean
Definition cah.h:119
virtual float distanceTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances)
Definition cah_d.h:236
float varReconstructionError()
Definition cah_d.h:163
void computeReconstructionError(const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data)
Definition cah_d.h:177
PcaReprocReconsErrorCahElementFactory(int nbOfSignificantVps, const std::vector< std::list< Point3d > > &classes=std::vector< std::list< Point3d > >(), const AimsData< T > &data=AimsData< T >())
Definition cah_d.h:1241
virtual std::string methodType() const
Definition cah.h:408
PcaReprocReconsErrorElement(const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, int numberOfSignificantVps, const std::set< int > &constitutedFrom=std::set< int >(), int number=-1)
Definition cah_d.h:567
virtual float distanceTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances)
Definition cah_d.h:665
virtual Element< T > * agregateTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances, int newNb=-1)
Definition cah_d.h:748
virtual ~PcaReprocReconsErrorElement()
Definition cah.h:134
float meanReconstructionError()
Definition cah_d.h:644
const AimsData< float > & errorMatrix()
Definition cah.h:145
virtual std::string methodType() const
Definition cah.h:375
virtual bool initDistanceAlreadyComputed() const
Definition cah.h:377
virtual ~SCKBDistanceCahElementFactory()
Definition cah.h:363
SCKBDistanceCahElementFactory(const std::vector< std::list< Point3d > > &classes, const std::vector< aims::DiscriminantAnalysisElement * > &classesKinDescription, const AimsData< int > &locMap, const std::vector< short > &unfusionedLabels, const std::vector< float > &classMaximaMoment, float spatialregularizationWeight=1., float timeOfMaximumWeight=0.5)
Definition cah_d.h:1089
const AimsData< float > * initDistances() const
Definition cah.h:378
SCKBDistanceElement(const AimsData< double > *maxMomentValueRatios, const AimsData< double > *kinModel2by2Distances, const AimsData< double > *interactionSurf, const std::vector< double > *labelsVolumes, float spatialregularizationWeight, float timeOfMaximumWeight, float meanDist2By2, float varDist2By2, float meanSurfVolRatio, float varSurfVolRatio, float meanMaxMomentRatio, float varMaxMomentRatio, const std::set< int > &constitutedFrom=std::set< int >(), int number=-1)
Definition cah.h:220
virtual ~SCKBDistanceElement()
Definition cah.h:237
virtual Element< T > * agregateTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances, int newNb=-1)
Definition cah_d.h:465
virtual float distanceTo(Element< T > *other, const std::vector< std::list< Point3d > > &classes, const AimsData< T > &data, const AimsData< float > &initDistances)
Definition cah_d.h:421
Definition cah.h:20