12 #ifndef AIMS_REGISTRATION_FFD_H 13 #define AIMS_REGISTRATION_FFD_H 99 { std::vector<float> v( 3 ); v[0] =
_vsx; v[1] =
_vsy; v[2] =
_vsz;
108 default:
return false;
120 int dimX,
int dimY,
int dimZ,
124 void write(
const std::string & filename )
const;
140 template <
typename T>
150 _flatx ? test_volume.
sizeX() : double(test_volume.
dimX() - 1) /
double(dimX - 1) * test_volume.
sizeX(),
151 _flaty ? test_volume.
sizeY() : double(test_volume.
dimY() - 1) /
double(dimY - 1) * test_volume.
sizeY(),
152 _flatz ? test_volume.
sizeZ() : double(test_volume.
dimZ() - 1) /
double(dimZ - 1) * test_volume.
sizeZ()
157 template <
typename T>
168 _flatx ? vs[0] :
double(test_volume.
getSizeX() - 1) /
double(dimX - 1) * vs[0],
169 _flaty ? vs[1] : double(test_volume.
getSizeY() - 1) /
double(dimY - 1) * vs[1],
170 _flatz ? vs[2] : double(test_volume.
getSizeZ() - 1) /
double(dimZ - 1) * vs[2]
228 template <
typename T>
231 template <
typename T>
242 double spline3(
double x )
const {
return _spline(x); }
247 {
return deformation_private(p_mm); };
251 std::vector<int> _mirrorcoefvecx;
252 std::vector<int> _mirrorcoefvecy;
253 std::vector<int> _mirrorcoefvecz;
259 template <
typename T>
268 template <
typename T>
291 Reader(
const std::string& filename ): base(filename) {}
295 const std::string* format = 0,
298 bool res = base::read(obj, border, format, frame);
316 inline Writer(
const std::string& filename,
318 base( filename, options ) {}
322 const std::string* format = 0 )
324 return base::write(obj, ascii, format);
347 template <
typename T>
358 virtual Point3dd transformDouble(
double x,
double y,
double z )
const;
360 {
return deformation_private(p_mm); };
364 template <
typename T>
FFD vector field deformation transform.
SplineFfd & operator=(const SplineFfd &other)
FFD vector field deformation transform.
Pre-computed B-Spline values In the "order 0" case, the array is not used (the analytical expression ...
double spline3(double x) const
SplineFfd(int dimX=0, int dimY=1, int dimZ=1, float sizeX=1., float sizeY=1., float sizeZ=1.)
std::vector< float > getVoxelSize() const
TrilinearFfd(int dimX=0, int dimY=1, int dimZ=1, float sizeX=1., float sizeY=1., float sizeZ=1.)
Point3dd deformation(const Point3dd &p_mm) const