aimsalgo 6.0.0
Neuroimaging image processing
aims::FfdTransformation Class Referenceabstract

FFD vector field deformation transform. More...

#include <aims/registration/ffd.h>

Inheritance diagram for aims::FfdTransformation:
Collaboration diagram for aims::FfdTransformation:

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)
 
FfdTransformationoperator= (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::Transformation3doperator* (const soma::Transformation3d &other) const
 
virtual carto::rc_ptr< soma::Transformation3doperator* (const carto::rc_ptr< soma::Transformation3d > &other) const
 
void buildFromOther (const soma::Transformation3d &other)
 
virtual carto::rc_ptr< soma::Transformation3dcomposed (const carto::rc_ptr< soma::Transformation3d > &other) const =0
 
virtual carto::rc_ptr< soma::Transformation3dleftComposed (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 Transformationoperator= (const Transformation &other)
 
carto::Object header ()
 
const carto::Object header () const
 
void setHeader (carto::Object ph)
 
virtual bool invertible () const
 
virtual std::unique_ptr< TransformationgetInverse () const
 
- Public Member Functions inherited from carto::RCObject
 RCObject ()
 
 RCObject (const RCObject &)
 
RCObjectoperator= (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)
 

Detailed Description

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>.

Definition at line 37 of file ffd.h.

Constructor & Destructor Documentation

◆ FfdTransformation() [1/5]

aims::FfdTransformation::FfdTransformation ( int dimX = 0,
int dimY = 1,
int dimZ = 1,
float sizeX = 1.,
float sizeY = 1.,
float sizeZ = 1. )

◆ FfdTransformation() [2/5]

template<typename T>
aims::FfdTransformation::FfdTransformation ( int dimX,
int dimY,
int dimZ,
const carto::rc_ptr< carto::Volume< T > > & test_volume )
inline

Definition at line 156 of file ffd.h.

References _ctrlPointDelta, _dimx, _dimy, _dimz, _flatx, _flaty, _flatz, dimX(), dimY(), dimZ(), and updateDimensions().

◆ FfdTransformation() [3/5]

template<typename T>
aims::FfdTransformation::FfdTransformation ( int dimX,
int dimY,
int dimZ,
const carto::Volume< T > & test_volume )
inline

◆ FfdTransformation() [4/5]

aims::FfdTransformation::FfdTransformation ( const FfdTransformation & other)

References FfdTransformation().

◆ FfdTransformation() [5/5]

aims::FfdTransformation::FfdTransformation ( const carto::rc_ptr< carto::Volume< Point3df > > & other)

Member Function Documentation

◆ _deformation()

virtual Point3dd aims::FfdTransformation::_deformation ( const Point3dd & p_mm) const
protectedpure virtual

◆ buildFromOther()

void aims::FfdTransformation::buildFromOther ( const soma::Transformation3d & other)

◆ composed()

virtual carto::rc_ptr< soma::Transformation3d > aims::FfdTransformation::composed ( const carto::rc_ptr< soma::Transformation3d > & other) const
pure virtual

Implemented in aims::SplineFfd, and aims::TrilinearFfd.

◆ ctrlDeformations()

carto::rc_ptr< carto::Volume< Point3df > > & aims::FfdTransformation::ctrlDeformations ( )
inline

Definition at line 61 of file ffd.h.

References _ctrlPointDelta.

◆ deformation()

Point3dd aims::FfdTransformation::deformation ( const Point3dd & p_mm) const

◆ dimX()

◆ dimY()

◆ dimZ()

◆ ffdCoord()

Point3dd aims::FfdTransformation::ffdCoord ( const Point3dd & p_mm) const
inline

Definition at line 84 of file ffd.h.

References mmToSplineVox().

◆ getCtrlKnot()

Point3df aims::FfdTransformation::getCtrlKnot ( int nx,
int ny,
int nz ) const

◆ getSize()

std::vector< int > aims::FfdTransformation::getSize ( ) const
inline

Definition at line 94 of file ffd.h.

References _dimx, _dimy, and _dimz.

◆ getSizeX()

int aims::FfdTransformation::getSizeX ( ) const
inline

Definition at line 91 of file ffd.h.

References _dimx.

◆ getSizeY()

int aims::FfdTransformation::getSizeY ( ) const
inline

Definition at line 92 of file ffd.h.

References _dimy.

◆ getSizeZ()

int aims::FfdTransformation::getSizeZ ( ) const
inline

Definition at line 93 of file ffd.h.

References _dimz.

◆ getVoxelSize()

std::vector< float > aims::FfdTransformation::getVoxelSize ( ) const
inline

Definition at line 100 of file ffd.h.

References _vsx, _vsy, and _vsz.

◆ increaseResolution()

void aims::FfdTransformation::increaseResolution ( const Point3d & addKnots)

◆ isDirect()

bool aims::FfdTransformation::isDirect ( ) const
overridevirtual

Implements soma::Transformation.

◆ isFlat()

bool aims::FfdTransformation::isFlat ( int i) const
inline

Definition at line 103 of file ffd.h.

References _flatx, _flaty, and _flatz.

◆ isIdentity()

bool aims::FfdTransformation::isIdentity ( ) const
inlinevirtual

Always false, because testing for identity is expensive.

Reimplemented from soma::Transformation.

Definition at line 65 of file ffd.h.

◆ isXFlat()

bool aims::FfdTransformation::isXFlat ( ) const
inline

Definition at line 113 of file ffd.h.

References _flatx.

◆ isYFlat()

bool aims::FfdTransformation::isYFlat ( ) const
inline

Definition at line 114 of file ffd.h.

References _flaty.

◆ isZFlat()

bool aims::FfdTransformation::isZFlat ( ) const
inline

Definition at line 115 of file ffd.h.

References _flatz.

◆ leftComposed()

virtual carto::rc_ptr< soma::Transformation3d > aims::FfdTransformation::leftComposed ( const carto::rc_ptr< soma::Transformation3d > & other) const
pure virtual

Implemented in aims::SplineFfd, and aims::TrilinearFfd.

◆ mmToSplineVox()

Point3dd aims::FfdTransformation::mmToSplineVox ( const Point3dd & p) const
inlineprotected

Definition at line 199 of file ffd.h.

References sizeX(), sizeY(), and sizeZ().

Referenced by ffdCoord().

◆ operator carto::rc_ptr< carto::Volume< Point3df > > &()

aims::FfdTransformation::operator carto::rc_ptr< carto::Volume< Point3df > > & ( )
inline

Definition at line 59 of file ffd.h.

References _ctrlPointDelta.

◆ operator carto::VolumeRef< Point3df > &()

aims::FfdTransformation::operator carto::VolumeRef< Point3df > & ( )
inline

Definition at line 55 of file ffd.h.

References _ctrlPointDelta.

◆ operator const carto::rc_ptr< carto::Volume< Point3df > > &()

aims::FfdTransformation::operator const carto::rc_ptr< carto::Volume< Point3df > > & ( ) const
inline

Definition at line 57 of file ffd.h.

References _ctrlPointDelta.

◆ operator const carto::VolumeRef< Point3df > &()

aims::FfdTransformation::operator const carto::VolumeRef< Point3df > & ( ) const
inline

Definition at line 53 of file ffd.h.

References _ctrlPointDelta.

◆ operator*() [1/2]

virtual carto::rc_ptr< soma::Transformation3d > aims::FfdTransformation::operator* ( const carto::rc_ptr< soma::Transformation3d > & other) const
virtual

◆ operator*() [2/2]

carto::rc_ptr< soma::Transformation3d > aims::FfdTransformation::operator* ( const soma::Transformation3d & other) const

◆ operator=()

FfdTransformation & aims::FfdTransformation::operator= ( const FfdTransformation & other)

References FfdTransformation().

◆ printControlPointsGrid()

void aims::FfdTransformation::printControlPointsGrid ( ) const

◆ sizeX()

float aims::FfdTransformation::sizeX ( ) const
inline

◆ sizeY()

float aims::FfdTransformation::sizeY ( ) const
inline

◆ sizeZ()

float aims::FfdTransformation::sizeZ ( ) const
inline

◆ splineVoxToMm()

Point3dd aims::FfdTransformation::splineVoxToMm ( const Point3dd & p) const
inlineprotected

Definition at line 191 of file ffd.h.

References sizeX(), sizeY(), and sizeZ().

◆ updateAllCtrlKnot()

void aims::FfdTransformation::updateAllCtrlKnot ( const carto::rc_ptr< carto::Volume< Point3df > > & newCtrlKnotGrid)

◆ updateAllCtrlKnotFromDeformation()

void aims::FfdTransformation::updateAllCtrlKnotFromDeformation ( const carto::rc_ptr< carto::Volume< Point3df > > & newDeformationGrid)

◆ updateCtrlKnot()

void aims::FfdTransformation::updateCtrlKnot ( int nx,
int ny,
int nz,
const Point3df & newCtrlKnot )

◆ updateDimensions()

virtual void aims::FfdTransformation::updateDimensions ( )
virtual

Reimplemented in aims::SplineFfd.

Referenced by FfdTransformation(), and FfdTransformation().

◆ updateGridResolution()

void aims::FfdTransformation::updateGridResolution ( const carto::rc_ptr< carto::Volume< Point3df > > & newGrid)
protected

◆ write()

void aims::FfdTransformation::write ( const std::string & filename) const

◆ writeDebugCtrlKnots()

void aims::FfdTransformation::writeDebugCtrlKnots ( const std::string & filename) const

◆ writeDebugDeformations()

void aims::FfdTransformation::writeDebugDeformations ( const std::string & filename,
int dimX,
int dimY,
int dimZ,
float sizeX,
float sizeY,
float sizeZ ) const

References dimX(), dimY(), dimZ(), sizeX(), sizeY(), and sizeZ().

Member Data Documentation

◆ _ctrlPointDelta

◆ _dimx

int aims::FfdTransformation::_dimx
protected

Definition at line 149 of file ffd.h.

Referenced by dimX(), FfdTransformation(), FfdTransformation(), getSize(), and getSizeX().

◆ _dimy

int aims::FfdTransformation::_dimy
protected

Definition at line 149 of file ffd.h.

Referenced by dimY(), FfdTransformation(), FfdTransformation(), getSize(), and getSizeY().

◆ _dimz

int aims::FfdTransformation::_dimz
protected

Definition at line 149 of file ffd.h.

Referenced by dimZ(), FfdTransformation(), FfdTransformation(), getSize(), and getSizeZ().

◆ _flatx

bool aims::FfdTransformation::_flatx
protected

Definition at line 151 of file ffd.h.

Referenced by FfdTransformation(), FfdTransformation(), isFlat(), and isXFlat().

◆ _flaty

bool aims::FfdTransformation::_flaty
protected

Definition at line 151 of file ffd.h.

Referenced by FfdTransformation(), FfdTransformation(), isFlat(), and isYFlat().

◆ _flatz

bool aims::FfdTransformation::_flatz
protected

Definition at line 151 of file ffd.h.

Referenced by FfdTransformation(), FfdTransformation(), isFlat(), and isZFlat().

◆ _vsx

float aims::FfdTransformation::_vsx
protected

Definition at line 150 of file ffd.h.

Referenced by getVoxelSize(), and sizeX().

◆ _vsy

float aims::FfdTransformation::_vsy
protected

Definition at line 150 of file ffd.h.

Referenced by getVoxelSize(), and sizeY().

◆ _vsz

float aims::FfdTransformation::_vsz
protected

Definition at line 150 of file ffd.h.

Referenced by getVoxelSize(), and sizeZ().


The documentation for this class was generated from the following file: