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


Public Member Functions | |
| 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. | |
| bool | isDirect () const override |
| 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 |
| virtual void | updateDimensions () |
| 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 |
| carto::rc_ptr< soma::Transformation3d > | operator* (const soma::Transformation3d &other) const |
| virtual carto::rc_ptr< soma::Transformation3d > | operator* (const carto::rc_ptr< soma::Transformation3d > &other) const |
| void | buildFromOther (const soma::Transformation3d &other) |
| virtual carto::rc_ptr< soma::Transformation3d > | composed (const carto::rc_ptr< soma::Transformation3d > &other) const =0 |
| virtual carto::rc_ptr< soma::Transformation3d > | leftComposed (const carto::rc_ptr< soma::Transformation3d > &other) const =0 |
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 |
| Point3di | transform (const Point3di &p) const |
| Point3di | transform (int x, int y, int z) const |
| virtual std::vector< double > | transform (const std::vector< double > &pos) const |
| virtual std::vector< float > | transform (const std::vector< float > &pos) const |
| virtual std::vector< int > | transform (const std::vector< int > &pos) const |
| virtual std::vector< double > | transformVector (const std::vector< double > &pos) const |
| virtual std::vector< float > | transformVector (const std::vector< float > &pos) const |
| virtual std::vector< int > | transformVector (const std::vector< int > &pos) const |
Public Member Functions inherited from soma::Transformation | |
| virtual | ~Transformation () |
| virtual Transformation & | operator= (const Transformation &other) |
| carto::Object | header () |
| const carto::Object | header () const |
| void | setHeader (carto::Object ph) |
| virtual bool | invertible () const |
| virtual std::unique_ptr< Transformation > | getInverse () const |
Public Member Functions inherited from carto::RCObject | |
| RCObject () | |
| RCObject (const RCObject &) | |
| RCObject & | operator= (const RCObject &) |
| virtual | ~RCObject () |
Protected Member Functions | |
| Point3dd | splineVoxToMm (const Point3dd &p) const |
| Point3dd | mmToSplineVox (const Point3dd &p) const |
| void | updateGridResolution (const carto::rc_ptr< carto::Volume< Point3df > > &newGrid) |
| virtual Point3dd | _deformation (const Point3dd &p_mm) const =0 |
Protected Member Functions inherited from soma::Transformation3d | |
| Transformation3d () | |
| virtual Point3dd | transformDouble (double x, double y, double z) const=0 |
| virtual Point3dd | transformPoint3dd (const Point3dd &pos) const |
| virtual Point3df | transformPoint3df (const Point3df &dir) const |
| virtual Point3d | transformPoint3d (const Point3d &p) const |
| virtual Point3di | transformPoint3di (const Point3di &p) const |
| virtual Point3df | transformFloat (float x, float y, float z) const |
| virtual Point3di | transformInt (int x, int y, int z) const |
Protected Member Functions inherited from soma::Transformation | |
| Transformation () | |
Protected Attributes | |
| 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 |
Additional Inherited Members | |
Public Types inherited from carto::RCObject | |
| typedef int | RefCounterType |
Static Public Member Functions inherited from soma::Transformation | |
| static std::vector< T > | vadd (const std::vector< T > &v1, const std::vector< T > &v2) |
| static std::vector< T > | vsub (const std::vector< T > &v1, const std::vector< T > &v2) |
| static std::vector< T > | vadd (const std::vector< T > &v1, const T &v2) |
| static std::vector< T > | vsub (const std::vector< T > &v1, const T &v2) |
| static std::vector< T > | vadd (const T &v1, const std::vector< T > &v2) |
| static std::vector< T > | vsub (const T &v1, const std::vector< T > &v2) |
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>.
| aims::FfdTransformation::FfdTransformation | ( | int | dimX = 0, |
| int | dimY = 1, | ||
| int | dimZ = 1, | ||
| float | sizeX = 1., | ||
| float | sizeY = 1., | ||
| float | sizeZ = 1. ) |
References dimX(), dimY(), dimZ(), sizeX(), sizeY(), and sizeZ().
Referenced by FfdTransformation(), operator=(), aims::SplineFfd::SplineFfd(), aims::SplineFfd::SplineFfd(), and aims::TrilinearFfd::TrilinearFfd().
|
inline |
|
inline |
Definition at line 174 of file ffd.h.
References _ctrlPointDelta, _dimx, _dimy, _dimz, _flatx, _flaty, _flatz, dimX(), dimY(), dimZ(), carto::VolumeProxy< typename T >::getSizeX(), carto::VolumeProxy< typename T >::getSizeY(), carto::VolumeProxy< typename T >::getSizeZ(), carto::VolumeProxy< typename T >::getVoxelSize(), and updateDimensions().
| aims::FfdTransformation::FfdTransformation | ( | const FfdTransformation & | other | ) |
References FfdTransformation().
| aims::FfdTransformation::FfdTransformation | ( | const carto::rc_ptr< carto::Volume< Point3df > > & | other | ) |
|
protectedpure virtual |
| void aims::FfdTransformation::buildFromOther | ( | const soma::Transformation3d & | other | ) |
|
pure virtual |
Implemented in aims::SplineFfd, and aims::TrilinearFfd.
|
inline |
Definition at line 61 of file ffd.h.
References _ctrlPointDelta.
|
inline |
Definition at line 88 of file ffd.h.
References _dimx.
Referenced by FfdTransformation(), FfdTransformation(), FfdTransformation(), aims::SplineFfd::SplineFfd(), aims::SplineFfd::SplineFfd(), aims::SplineFfd::SplineFfd(), aims::TrilinearFfd::TrilinearFfd(), aims::TrilinearFfd::TrilinearFfd(), and writeDebugDeformations().
|
inline |
Definition at line 89 of file ffd.h.
References _dimy.
Referenced by FfdTransformation(), FfdTransformation(), FfdTransformation(), aims::SplineFfd::SplineFfd(), aims::SplineFfd::SplineFfd(), aims::SplineFfd::SplineFfd(), aims::TrilinearFfd::TrilinearFfd(), aims::TrilinearFfd::TrilinearFfd(), and writeDebugDeformations().
|
inline |
Definition at line 90 of file ffd.h.
References _dimz.
Referenced by FfdTransformation(), FfdTransformation(), FfdTransformation(), aims::SplineFfd::SplineFfd(), aims::SplineFfd::SplineFfd(), aims::SplineFfd::SplineFfd(), aims::TrilinearFfd::TrilinearFfd(), aims::TrilinearFfd::TrilinearFfd(), and writeDebugDeformations().
Definition at line 84 of file ffd.h.
References mmToSplineVox().
| Point3df aims::FfdTransformation::getCtrlKnot | ( | int | nx, |
| int | ny, | ||
| int | nz ) const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| void aims::FfdTransformation::increaseResolution | ( | const Point3d & | addKnots | ) |
|
overridevirtual |
Implements soma::Transformation.
|
inline |
|
inlinevirtual |
Always false, because testing for identity is expensive.
Reimplemented from soma::Transformation.
|
inline |
|
inline |
|
inline |
|
pure virtual |
Implemented in aims::SplineFfd, and aims::TrilinearFfd.
|
inline |
Definition at line 59 of file ffd.h.
References _ctrlPointDelta.
|
inline |
Definition at line 55 of file ffd.h.
References _ctrlPointDelta.
|
inline |
Definition at line 57 of file ffd.h.
References _ctrlPointDelta.
|
inline |
Definition at line 53 of file ffd.h.
References _ctrlPointDelta.
|
virtual |
| carto::rc_ptr< soma::Transformation3d > aims::FfdTransformation::operator* | ( | const soma::Transformation3d & | other | ) | const |
| FfdTransformation & aims::FfdTransformation::operator= | ( | const FfdTransformation & | other | ) |
References FfdTransformation().
| void aims::FfdTransformation::printControlPointsGrid | ( | ) | const |
|
inline |
Definition at line 97 of file ffd.h.
References _vsx.
Referenced by FfdTransformation(), mmToSplineVox(), aims::SplineFfd::SplineFfd(), splineVoxToMm(), aims::TrilinearFfd::TrilinearFfd(), and writeDebugDeformations().
|
inline |
Definition at line 98 of file ffd.h.
References _vsy.
Referenced by FfdTransformation(), mmToSplineVox(), aims::SplineFfd::SplineFfd(), splineVoxToMm(), aims::TrilinearFfd::TrilinearFfd(), and writeDebugDeformations().
|
inline |
Definition at line 99 of file ffd.h.
References _vsz.
Referenced by FfdTransformation(), mmToSplineVox(), aims::SplineFfd::SplineFfd(), splineVoxToMm(), aims::TrilinearFfd::TrilinearFfd(), and writeDebugDeformations().
| void aims::FfdTransformation::updateAllCtrlKnot | ( | const carto::rc_ptr< carto::Volume< Point3df > > & | newCtrlKnotGrid | ) |
| void aims::FfdTransformation::updateAllCtrlKnotFromDeformation | ( | const carto::rc_ptr< carto::Volume< Point3df > > & | newDeformationGrid | ) |
| void aims::FfdTransformation::updateCtrlKnot | ( | int | nx, |
| int | ny, | ||
| int | nz, | ||
| const Point3df & | newCtrlKnot ) |
|
virtual |
Reimplemented in aims::SplineFfd.
Referenced by FfdTransformation(), and FfdTransformation().
|
protected |
| void aims::FfdTransformation::write | ( | const std::string & | filename | ) | const |
| void aims::FfdTransformation::writeDebugCtrlKnots | ( | const std::string & | filename | ) | const |
| void aims::FfdTransformation::writeDebugDeformations | ( | const std::string & | filename, |
| int | dimX, | ||
| int | dimY, | ||
| int | dimZ, | ||
| float | sizeX, | ||
| float | sizeY, | ||
| float | sizeZ ) const |
|
protected |
Definition at line 148 of file ffd.h.
Referenced by ctrlDeformations(), FfdTransformation(), FfdTransformation(), operator carto::rc_ptr< carto::Volume< Point3df > > &(), operator carto::VolumeRef< Point3df > &(), operator const carto::rc_ptr< carto::Volume< Point3df > > &(), and operator const carto::VolumeRef< Point3df > &().
|
protected |
Definition at line 149 of file ffd.h.
Referenced by dimX(), FfdTransformation(), FfdTransformation(), getSize(), and getSizeX().
|
protected |
Definition at line 149 of file ffd.h.
Referenced by dimY(), FfdTransformation(), FfdTransformation(), getSize(), and getSizeY().
|
protected |
Definition at line 149 of file ffd.h.
Referenced by dimZ(), FfdTransformation(), FfdTransformation(), getSize(), and getSizeZ().
|
protected |
Definition at line 151 of file ffd.h.
Referenced by FfdTransformation(), FfdTransformation(), isFlat(), and isXFlat().
|
protected |
Definition at line 151 of file ffd.h.
Referenced by FfdTransformation(), FfdTransformation(), isFlat(), and isYFlat().
|
protected |
Definition at line 151 of file ffd.h.
Referenced by FfdTransformation(), FfdTransformation(), isFlat(), and isZFlat().
|
protected |
Definition at line 150 of file ffd.h.
Referenced by getVoxelSize(), and sizeX().
|
protected |
Definition at line 150 of file ffd.h.
Referenced by getVoxelSize(), and sizeY().
|
protected |
Definition at line 150 of file ffd.h.
Referenced by getVoxelSize(), and sizeZ().