A.I.M.S algorithms


displacement_field.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 #ifndef AIMS_REGISTRATION_DISPLACEMENT_FIELD_H
11 #define AIMS_REGISTRATION_DISPLACEMENT_FIELD_H
12 
13 #include <cartobase/type/limits.h>
14 #include <aims/data/data_g.h>
15 #include <aims/math/math_g.h>
16 #include <vector>
17 #include <aims/pyramid/pyramid_g.h>
19 
20 template <class T>
22 {
23  public:
26 
27 
28  void init(AimsData<T>& ref, ScaleControl& scaleControl, T * seuils);
30  std::vector<Point3df> getpointstest() {return _pointstest;}
31  std::vector<Point3df> getpointsref() {return _pointsref;}
32  double* getbarytest() {return _barytest;}
33  double* getbaryref() {return _baryref;}
34  AimsData< int >* getOffset() { return &_offset;}
35  int getLevel() {return _level;}
36  Point3d getDimRef() {return _dimRef;}
37  Point3df getSizeRef() {return _sizeRef;}
38  AimsData<T> getQuality( AimsData<T>& testtrans, AimsData<T>& ref,
39  int level, T thresh = std::numeric_limits<T>::max() );
40 
41  private:
42  double _cost;
43  int _tx, _ty;
44  std::vector<Point3df> _pointstest;
45  std::vector<Point3df> _pointsref;
46  double _barytest[3];
47  double _baryref[3];
48 
49 
50  void selectBlock(const AimsData<T>& image, double cV);
51  AimsData< T > _pyrRef;
52  AimsData< T > _pyrTest;
53  int _level;
54  int _nx, _ny, _nz, _nz23d;
55  AimsData<int> _offset;
56  AimsData<int> _offset2;
57  T _lthr, _hthr, _ltht, _htht;
58 
59  std::multimap<float, Point3d> _sel;
60  std::multimap<float, double> _moy;
61  double _selThresh;
62  double _seuilCorrel;
63 
64  Point3d _dimRef;
65  Point3df _sizeRef;
66 };
67 #endif
std::vector< Point3df > getpointstest()
std::vector< Point3df > getpointsref()
AimsData< Point3d > getField(AimsData< T > &test)
AimsData< T > getQuality(AimsData< T > &testtrans, AimsData< T > &ref, int level, T thresh=std::numeric_limits< T >::max())
AimsData< int > * getOffset()
void init(AimsData< T > &ref, ScaleControl &scaleControl, T *seuils)