|
VTK
|
a nonlinear warp transformation More...
#include <vtkThinPlateSplineTransform.h>
Public Types | |
| typedef vtkWarpTransform | Superclass |
Public Types inherited from vtkWarpTransform | |
| typedef vtkAbstractTransform | Superclass |
Public Types inherited from vtkAbstractTransform | |
| typedef vtkObject | Superclass |
Public Member Functions | |
| virtual int | IsA (const char *type) |
| vtkThinPlateSplineTransform * | NewInstance () const |
| void | PrintSelf (ostream &os, vtkIndent indent) |
| unsigned long | GetMTime () |
| vtkAbstractTransform * | MakeTransform () |
| virtual double | GetSigma () |
| virtual void | SetSigma (double) |
| void | SetBasis (int basis) |
| virtual int | GetBasis () |
| void | SetBasisToR () |
| void | SetBasisToR2LogR () |
| const char * | GetBasisAsString () |
| void | SetBasisFunction (double(*U)(double r)) |
| void | SetBasisDerivative (double(*dUdr)(double r, double &dU)) |
| void | SetSourceLandmarks (vtkPoints *source) |
| virtual vtkPoints * | GetSourceLandmarks () |
| void | SetTargetLandmarks (vtkPoints *target) |
| virtual vtkPoints * | GetTargetLandmarks () |
Public Member Functions inherited from vtkWarpTransform | |
| vtkWarpTransform * | NewInstance () const |
| void | PrintSelf (ostream &os, vtkIndent indent) |
| void | Inverse () |
| virtual int | GetInverseFlag () |
| virtual void | SetInverseTolerance (double) |
| virtual double | GetInverseTolerance () |
| virtual void | SetInverseIterations (int) |
| virtual int | GetInverseIterations () |
| void | InternalTransformPoint (const float in[3], float out[3]) |
| void | InternalTransformPoint (const double in[3], double out[3]) |
| void | InternalTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
| void | InternalTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
| void | TemplateTransformPoint (const float in[3], float out[3]) |
| void | TemplateTransformPoint (const double in[3], double out[3]) |
| void | TemplateTransformPoint (const float in[3], float out[3], float derivative[3][3]) |
| void | TemplateTransformPoint (const double in[3], double out[3], double derivative[3][3]) |
| void | TemplateTransformInverse (const float in[3], float out[3]) |
| void | TemplateTransformInverse (const double in[3], double out[3]) |
| void | TemplateTransformInverse (const float in[3], float out[3], float derivative[3][3]) |
| void | TemplateTransformInverse (const double in[3], double out[3], double derivative[3][3]) |
Public Member Functions inherited from vtkAbstractTransform | |
| vtkAbstractTransform * | NewInstance () const |
| void | PrintSelf (ostream &os, vtkIndent indent) |
| double * | TransformNormalAtPoint (const double point[3], const double normal[3]) |
| double * | TransformVectorAtPoint (const double point[3], const double vector[3]) |
| virtual void | TransformPoints (vtkPoints *inPts, vtkPoints *outPts) |
| vtkAbstractTransform * | GetInverse () |
| void | SetInverse (vtkAbstractTransform *transform) |
| void | DeepCopy (vtkAbstractTransform *) |
| void | Update () |
| virtual int | CircuitCheck (vtkAbstractTransform *transform) |
| unsigned long | GetMTime () |
| virtual void | UnRegister (vtkObjectBase *O) |
| void | TransformPoint (const float in[3], float out[3]) |
| void | TransformPoint (const double in[3], double out[3]) |
| double * | TransformPoint (double x, double y, double z) |
| double * | TransformPoint (const double point[3]) |
| float * | TransformFloatPoint (float x, float y, float z) |
| float * | TransformFloatPoint (const float point[3]) |
| double * | TransformDoublePoint (double x, double y, double z) |
| double * | TransformDoublePoint (const double point[3]) |
| void | TransformNormalAtPoint (const float point[3], const float in[3], float out[3]) |
| void | TransformNormalAtPoint (const double point[3], const double in[3], double out[3]) |
| double * | TransformDoubleNormalAtPoint (const double point[3], const double normal[3]) |
| float * | TransformFloatNormalAtPoint (const float point[3], const float normal[3]) |
| void | TransformVectorAtPoint (const float point[3], const float in[3], float out[3]) |
| void | TransformVectorAtPoint (const double point[3], const double in[3], double out[3]) |
| double * | TransformDoubleVectorAtPoint (const double point[3], const double vector[3]) |
| float * | TransformFloatVectorAtPoint (const float point[3], const float vector[3]) |
| virtual void | TransformPointsNormalsVectors (vtkPoints *inPts, vtkPoints *outPts, vtkDataArray *inNms, vtkDataArray *outNms, vtkDataArray *inVrs, vtkDataArray *outVrs) |
Static Public Member Functions | |
| static int | IsTypeOf (const char *type) |
| static vtkThinPlateSplineTransform * | SafeDownCast (vtkObjectBase *o) |
| static vtkThinPlateSplineTransform * | New () |
Static Public Member Functions inherited from vtkWarpTransform | |
| static int | IsTypeOf (const char *type) |
| static vtkWarpTransform * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkAbstractTransform | |
| static int | IsTypeOf (const char *type) |
| static vtkAbstractTransform * | SafeDownCast (vtkObjectBase *o) |
Protected Member Functions | |
| virtual vtkObjectBase * | NewInstanceInternal () const |
| vtkThinPlateSplineTransform () | |
| ~vtkThinPlateSplineTransform () | |
| void | InternalUpdate () |
| void | InternalDeepCopy (vtkAbstractTransform *transform) |
| void | ForwardTransformPoint (const float in[3], float out[3]) |
| void | ForwardTransformPoint (const double in[3], double out[3]) |
| void | ForwardTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
| void | ForwardTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
Protected Member Functions inherited from vtkWarpTransform | |
| vtkWarpTransform () | |
| ~vtkWarpTransform () | |
| virtual void | InverseTransformPoint (const float in[3], float out[3]) |
| virtual void | InverseTransformPoint (const double in[3], double out[3]) |
| virtual void | InverseTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
| virtual void | InverseTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
Protected Member Functions inherited from vtkAbstractTransform | |
| vtkAbstractTransform () | |
| ~vtkAbstractTransform () | |
Protected Attributes | |
| double | Sigma |
| vtkPoints * | SourceLandmarks |
| vtkPoints * | TargetLandmarks |
| double(* | BasisFunction )(double r) |
| double(* | BasisDerivative )(double r, double &dUdr) |
| int | Basis |
| int | NumberOfPoints |
| double ** | MatrixW |
Protected Attributes inherited from vtkWarpTransform | |
| int | InverseFlag |
| int | InverseIterations |
| double | InverseTolerance |
Protected Attributes inherited from vtkAbstractTransform | |
| float | InternalFloatPoint [3] |
| double | InternalDoublePoint [3] |
a nonlinear warp transformation
vtkThinPlateSplineTransform describes a nonlinear warp transform defined by a set of source and target landmarks. Any point on the mesh close to a source landmark will be moved to a place close to the corresponding target landmark. The points in between are interpolated smoothly using Bookstein's Thin Plate Spline algorithm.
To obtain a correct TPS warp, use the R2LogR kernel if your data is 2D, and the R kernel if your data is 3D. Or you can specify your own RBF. (Hence this class is more general than a pure TPS transform.)
Definition at line 51 of file vtkThinPlateSplineTransform.h.
Definition at line 54 of file vtkThinPlateSplineTransform.h.
|
protected |
|
protected |
|
static |
|
virtual |
Reimplemented from vtkWarpTransform.
|
static |
|
protectedvirtual |
Reimplemented from vtkWarpTransform.
| vtkThinPlateSplineTransform* vtkThinPlateSplineTransform::NewInstance | ( | ) | const |
| void vtkThinPlateSplineTransform::PrintSelf | ( | ostream & | os, |
| vtkIndent | indent | ||
| ) |
|
static |
|
virtual |
Specify the 'stiffness' of the spline. The default is 1.0.
|
virtual |
Specify the 'stiffness' of the spline. The default is 1.0.
| void vtkThinPlateSplineTransform::SetBasis | ( | int | basis | ) |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
|
virtual |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
|
inline |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
Definition at line 71 of file vtkThinPlateSplineTransform.h.
|
inline |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
Definition at line 72 of file vtkThinPlateSplineTransform.h.
| const char* vtkThinPlateSplineTransform::GetBasisAsString | ( | ) |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
|
inline |
Set the radial basis function to a custom function. You must supply both the function and its derivative with respect to r.
Definition at line 80 of file vtkThinPlateSplineTransform.h.
|
inline |
Set the radial basis function to a custom function. You must supply both the function and its derivative with respect to r.
Definition at line 85 of file vtkThinPlateSplineTransform.h.
| void vtkThinPlateSplineTransform::SetSourceLandmarks | ( | vtkPoints * | source | ) |
Set the source landmarks for the warp. If you add or change the vtkPoints object, you must call Modified() on it or the transformation might not update.
|
virtual |
Set the source landmarks for the warp. If you add or change the vtkPoints object, you must call Modified() on it or the transformation might not update.
| void vtkThinPlateSplineTransform::SetTargetLandmarks | ( | vtkPoints * | target | ) |
Set the target landmarks for the warp. If you add or change the vtkPoints object, you must call Modified() on it or the transformation might not update.
|
virtual |
Set the target landmarks for the warp. If you add or change the vtkPoints object, you must call Modified() on it or the transformation might not update.
| unsigned long vtkThinPlateSplineTransform::GetMTime | ( | ) |
Get the MTime.
|
virtual |
Make another transform of the same type.
Implements vtkAbstractTransform.
|
protectedvirtual |
Prepare the transformation for application.
Reimplemented from vtkAbstractTransform.
|
protectedvirtual |
This method does no type checking, use DeepCopy instead.
Reimplemented from vtkAbstractTransform.
|
protectedvirtual |
If the InverseFlag is set to 0, then a call to InternalTransformPoint results in a call to ForwardTransformPoint.
Implements vtkWarpTransform.
|
protectedvirtual |
If the InverseFlag is set to 0, then a call to InternalTransformPoint results in a call to ForwardTransformPoint.
Implements vtkWarpTransform.
|
protectedvirtual |
Calculate the forward transform as well as the derivative.
Implements vtkWarpTransform.
|
protectedvirtual |
Calculate the forward transform as well as the derivative.
Implements vtkWarpTransform.
|
protected |
Definition at line 131 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 132 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 133 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 137 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 138 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 140 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 142 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 143 of file vtkThinPlateSplineTransform.h.
1.8.6