![]() |
aimsalgo
5.1.2
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. 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 |
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 |
![]() | |
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 |
![]() | |
virtual | ~Transformation () |
carto::Object | header () |
const carto::Object | header () const |
void | setHeader (carto::Object ph) |
![]() | |
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 |
![]() | |
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 Point3df | transformFloat (float x, float y, float z) const |
![]() | |
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 |
![]() | |
carto::Object | _header |
Additional Inherited Members | |
![]() | |
typedef int | RefCounterType |
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. |
||
) |
|
inline |
Definition at line 143 of file ffd.h.
References _ctrlPointDelta, _flatx, _flaty, _flatz, dimX(), dimY(), dimZ(), and updateDimensions().
|
inline |
Definition at line 161 of file ffd.h.
References _ctrlPointDelta, _flatx, _flaty, _flatz, dimX(), dimY(), dimZ(), carto::VolumeProxy< class >::getSizeX(), carto::VolumeProxy< class >::getSizeY(), carto::VolumeProxy< class >::getSizeZ(), carto::VolumeProxy< class >::getVoxelSize(), and updateDimensions().
aims::FfdTransformation::FfdTransformation | ( | const FfdTransformation & | other | ) |
aims::FfdTransformation::FfdTransformation | ( | const carto::rc_ptr< carto::Volume< Point3df > > & | other | ) |
|
protectedpure virtual |
|
inline |
Definition at line 61 of file ffd.h.
References _ctrlPointDelta.
|
inline |
|
inline |
|
inline |
Definition at line 82 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 | ) |
|
inline |
|
inlinevirtual |
Always false, because testing for identity is expensive.
Reimplemented from soma::Transformation.
|
inline |
|
inline |
|
inline |
|
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.
FfdTransformation& aims::FfdTransformation::operator= | ( | const FfdTransformation & | other | ) |
void aims::FfdTransformation::printControlPointsGrid | ( | ) | const |
|
inline |
Definition at line 95 of file ffd.h.
References _vsx.
Referenced by mmToSplineVox(), and splineVoxToMm().
|
inline |
Definition at line 96 of file ffd.h.
References _vsy.
Referenced by mmToSplineVox(), and splineVoxToMm().
|
inline |
Definition at line 97 of file ffd.h.
References _vsz.
Referenced by mmToSplineVox(), and splineVoxToMm().
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().
|
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 135 of file ffd.h.
Referenced by ctrlDeformations(), 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 136 of file ffd.h.
Referenced by dimX(), getSize(), and getSizeX().
|
protected |
Definition at line 136 of file ffd.h.
Referenced by dimY(), getSize(), and getSizeY().
|
protected |
Definition at line 136 of file ffd.h.
Referenced by dimZ(), getSize(), and getSizeZ().
|
protected |
Definition at line 138 of file ffd.h.
Referenced by FfdTransformation(), isFlat(), and isXFlat().
|
protected |
Definition at line 138 of file ffd.h.
Referenced by FfdTransformation(), isFlat(), and isYFlat().
|
protected |
Definition at line 138 of file ffd.h.
Referenced by FfdTransformation(), isFlat(), and isZFlat().
|
protected |
Definition at line 137 of file ffd.h.
Referenced by getVoxelSize(), and sizeX().
|
protected |
Definition at line 137 of file ffd.h.
Referenced by getVoxelSize(), and sizeY().
|
protected |
Definition at line 137 of file ffd.h.
Referenced by getVoxelSize(), and sizeZ().