![]() |
aimsalgo
5.1.2
Neuroimaging image processing
|
FFD vector field deformation transform. More...
#include <aims/registration/ffd.h>


Public Member Functions | |
| SplineFfd (int dimX=0, int dimY=1, int dimZ=1, float sizeX=1., float sizeY=1., float sizeZ=1.) | |
| template<typename T > | |
| SplineFfd (int dimX, int dimY, int dimZ, const carto::rc_ptr< carto::Volume< T > > &test_volume) | |
| template<typename T > | |
| SplineFfd (int dimX, int dimY, int dimZ, const carto::Volume< T > &test_volume) | |
| SplineFfd (const SplineFfd &other) | |
| SplineFfd (const carto::rc_ptr< carto::Volume< Point3df > > &other) | |
| SplineFfd & | operator= (const SplineFfd &other) |
| virtual void | updateDimensions () |
| Point3dd | deformation (const Point3dd &p_mm) const |
| double | spline3 (double x) const |
Public Member Functions inherited from aims::FfdTransformation | |
| FfdTransformation (int dimX=0, int dimY=1, int dimZ=1, float sizeX=1., float sizeY=1., float sizeZ=1.) | |
| template<typename T > | |
| FfdTransformation (int dimX, int dimY, int dimZ, const carto::rc_ptr< carto::Volume< T > > &test_volume) | |
| template<typename T > | |
| FfdTransformation (int dimX, int dimY, int dimZ, const carto::Volume< T > &test_volume) | |
| FfdTransformation (const FfdTransformation &other) | |
| FfdTransformation (const carto::rc_ptr< carto::Volume< Point3df > > &other) | |
| FfdTransformation & | operator= (const FfdTransformation &other) |
| operator const carto::VolumeRef< Point3df > & () const | |
| operator carto::VolumeRef< Point3df > & () | |
| operator const carto::rc_ptr< carto::Volume< Point3df > > & () const | |
| operator carto::rc_ptr< carto::Volume< Point3df > > & () | |
| carto::rc_ptr< carto::Volume< Point3df > > & | ctrlDeformations () |
| bool | isIdentity () const CARTO_OVERRIDE |
| Always false, because testing for identity is expensive. More... | |
| Point3df | getCtrlKnot (int nx, int ny, int nz) const |
| void | updateCtrlKnot (int nx, int ny, int nz, const Point3df &newCtrlKnot) |
| void | updateAllCtrlKnot (const carto::rc_ptr< carto::Volume< Point3df > > &newCtrlKnotGrid) |
| void | updateAllCtrlKnotFromDeformation (const carto::rc_ptr< carto::Volume< Point3df > > &newDeformationGrid) |
| void | increaseResolution (const Point3d &addKnots) |
| Point3dd | deformation (const Point3dd &p_mm) const |
| Point3dd | ffdCoord (const Point3dd &p_mm) const |
| int | dimX () const |
| int | dimY () const |
| int | dimZ () const |
| int | getSizeX () const |
| int | getSizeY () const |
| int | getSizeZ () const |
| std::vector< int > | getSize () const |
| float | sizeX () const |
| float | sizeY () const |
| float | sizeZ () const |
| std::vector< float > | getVoxelSize () const |
| bool | isFlat (int i) const |
| bool | isXFlat () const |
| bool | isYFlat () const |
| bool | isZFlat () const |
| void | printControlPointsGrid () const |
| void | writeDebugCtrlKnots (const std::string &filename) const |
| void | writeDebugDeformations (const std::string &filename, int dimX, int dimY, int dimZ, float sizeX, float sizeY, float sizeZ) const |
| void | write (const std::string &filename) const |
Public Member Functions inherited from soma::Transformation3d | |
| virtual | ~Transformation3d () |
| Point3dd | transform (double x, double y, double z) const |
| Point3dd | transform (const Point3dd &pos) const |
| Point3df | transform (const Point3df &dir) const |
| Point3df | transform (float x, float y, float z) const |
| Point3d | transform (const Point3d &p) const |
| virtual bool | invertible () const |
| virtual std::unique_ptr< Transformation3d > | getInverse () const |
Public Member Functions inherited from soma::Transformation | |
| virtual | ~Transformation () |
| carto::Object | header () |
| const carto::Object | header () const |
| void | setHeader (carto::Object ph) |
Public Member Functions inherited from carto::RCObject | |
| RCObject () | |
| RCObject (const RCObject &) | |
| RCObject & | operator= (const RCObject &) |
| virtual | ~RCObject () |
Additional Inherited Members | |
Public Types inherited from carto::RCObject | |
| typedef int | RefCounterType |
Protected Member Functions inherited from aims::FfdTransformation | |
| Point3dd | splineVoxToMm (const Point3dd &p) const |
| Point3dd | mmToSplineVox (const Point3dd &p) const |
| void | updateGridResolution (const carto::rc_ptr< carto::Volume< Point3df > > &newGrid) |
Protected Member Functions inherited from soma::Transformation3d | |
| Transformation3d () | |
| virtual Point3dd | transformPoint3dd (const Point3dd &pos) const |
| virtual Point3df | transformPoint3df (const Point3df &dir) const |
| virtual Point3d | transformPoint3d (const Point3d &p) const |
| virtual Point3df | transformFloat (float x, float y, float z) const |
Protected Member Functions inherited from soma::Transformation | |
| Transformation () | |
Protected Attributes inherited from aims::FfdTransformation | |
| carto::VolumeRef< Point3df > | _ctrlPointDelta |
| int | _dimx |
| int | _dimy |
| int | _dimz |
| float | _vsx |
| float | _vsy |
| float | _vsz |
| bool | _flatx |
| bool | _flaty |
| bool | _flatz |
Protected Attributes inherited from soma::Transformation | |
| carto::Object | _header |
FFD vector field deformation transform.
Free Form Deformation is the registration technique used to build the vector fields. This class is dedicated to the application of the vector field deformation to transform coordinates.
Vector fields are stored in volumes VolumeRef<Point3df>.
This Spline FFD uses cubic spline interpolation between displacement vectors to process transformed coordinates. See TrilinearFfd for a variant using trilinear interpolation.
This class is the "base" vector field deformation class, which can perform point-to-point transformation. It is used by various higher-level classes or functions to work on higher-level objects:
To resample full 2D or 3D images, see the Resampler class and its derived classes (see also ResamplerFactory).
As a Transformation3d specialization, the main method of this class is the transform() method, which actually performs 3D coordinates transformation. The other methods can be seen as "internal machinery".
| aims::SplineFfd::SplineFfd | ( | int | dimX = 0, |
| int | dimY = 1, |
||
| int | dimZ = 1, |
||
| float | sizeX = 1., |
||
| float | sizeY = 1., |
||
| float | sizeZ = 1. |
||
| ) |
|
inline |
|
inline |
| aims::SplineFfd::SplineFfd | ( | const SplineFfd & | other | ) |
| aims::SplineFfd::SplineFfd | ( | const carto::rc_ptr< carto::Volume< Point3df > > & | other | ) |
|
virtual |
Reimplemented from aims::FfdTransformation.