aimsalgo 6.0.0
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
13#include <cartodata/volume/volume.h>
15#include <cartobase/type/limits.h>
16#include <vector>
17
18template <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);
54 carto::VolumeRef< T > _pyrTest;
55 int _level;
56 int _nx, _ny, _nz, _nz23d;
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())
carto::VolumeRef< int > * getOffset()
void init(carto::rc_ptr< carto::Volume< T > > ref, ScaleControl &scaleControl, T *seuils)
std::vector< Point3df > getpointstest()
carto::VolumeRef< Point3d > getField(carto::rc_ptr< carto::Volume< T > > test)
std::vector< Point3df > getpointsref()
static _Tp max()
AimsVector< float, 3 > Point3df
AimsVector< int16_t, 3 > Point3d