aimsalgo  5.1.2
Neuroimaging image processing
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 
15 #include <cartobase/type/limits.h>
16 #include <vector>
17 
18 template <class T>
20 {
21  public:
24 
25 
26  void init(carto::rc_ptr<carto::Volume<T> > ref, ScaleControl& scaleControl,
27  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  carto::VolumeRef< int >* getOffset() { return &_offset;}
35  int getLevel() {return _level;}
36  Point3d getDimRef() {return _dimRef;}
37  Point3df getSizeRef() {return _sizeRef;}
40  int level,
41  T thresh = std::numeric_limits<T>::max() );
42 
43  private:
44  double _cost;
45  int _tx, _ty;
46  std::vector<Point3df> _pointstest;
47  std::vector<Point3df> _pointsref;
48  double _barytest[3];
49  double _baryref[3];
50 
51 
52  void selectBlock(const carto::rc_ptr<carto::Volume<T> > image, double cV);
53  carto::VolumeRef< T > _pyrRef;
54  carto::VolumeRef< T > _pyrTest;
55  int _level;
56  int _nx, _ny, _nz, _nz23d;
57  carto::VolumeRef<int> _offset;
58  carto::VolumeRef<int> _offset2;
59  T _lthr, _hthr, _ltht, _htht;
60 
61  std::multimap<float, Point3d> _sel;
62  std::multimap<float, double> _moy;
63  double _selThresh;
64  double _seuilCorrel;
65 
66  Point3d _dimRef;
67  Point3df _sizeRef;
68 };
69 #endif
carto::VolumeRef< T > getQuality(carto::rc_ptr< carto::Volume< T > > testtrans, carto::rc_ptr< carto::Volume< T > > ref, int level, T thresh=std::numeric_limits< T >::max())
void init(carto::rc_ptr< carto::Volume< T > > ref, ScaleControl &scaleControl, T *seuils)
carto::VolumeRef< Point3d > getField(carto::rc_ptr< carto::Volume< T > > test)
carto::VolumeRef< int > * getOffset()
std::vector< Point3df > getpointstest()
std::vector< Point3df > getpointsref()