VTK
|
convert image to b-spline knots More...
#include <vtkImageBSplineCoefficients.h>
Public Types | |
typedef vtkThreadedImageAlgorithm | Superclass |
![]() | |
typedef vtkImageAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
![]() | |
typedef vtkObject | Superclass |
enum | DesiredOutputPrecision { SINGLE_PRECISION, DOUBLE_PRECISION, DEFAULT_PRECISION } |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkImageBSplineCoefficients * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
int | CheckBounds (const double point[3]) |
int | SplitExtent (int splitExt[6], int startExt[6], int num, int total) |
virtual void | SetSplineDegree (int) |
virtual int | GetSplineDegree () |
virtual void | SetBorderMode (int) |
void | SetBorderModeToClamp () |
void | SetBorderModeToRepeat () |
void | SetBorderModeToMirror () |
virtual int | GetBorderMode () |
const char * | GetBorderModeAsString () |
virtual void | SetOutputScalarType (int) |
virtual int | GetOutputScalarType () |
void | SetOutputScalarTypeToFloat () |
void | SetOutputScalarTypeToDouble () |
const char * | GetOutputScalarTypeAsString () |
virtual void | SetBypass (int) |
virtual void | BypassOn () |
virtual void | BypassOff () |
virtual int | GetBypass () |
void | Evaluate (const double point[3], double *value) |
double | Evaluate (double x, double y, double z) |
double | Evaluate (const double point[3]) |
![]() | |
vtkThreadedImageAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | ThreadedRequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int threadId) |
virtual void | SetNumberOfThreads (int) |
virtual int | GetNumberOfThreads () |
![]() | |
vtkImageAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
vtkImageData * | GetOutput () |
vtkImageData * | GetOutput (int) |
virtual void | SetOutput (vtkDataObject *d) |
virtual int | ProcessRequest (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
void | SetInputData (vtkDataObject *) |
void | SetInputData (int, vtkDataObject *) |
vtkDataObject * | GetInput (int port) |
vtkDataObject * | GetInput () |
vtkImageData * | GetImageDataInput (int port) |
virtual void | AddInputData (vtkDataObject *) |
virtual void | AddInputData (int, vtkDataObject *) |
![]() | |
vtkAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
int | HasExecutive () |
vtkExecutive * | GetExecutive () |
virtual void | SetExecutive (vtkExecutive *executive) |
virtual int | ModifyRequest (vtkInformation *request, int when) |
vtkInformation * | GetInputPortInformation (int port) |
vtkInformation * | GetOutputPortInformation (int port) |
int | GetNumberOfInputPorts () |
int | GetNumberOfOutputPorts () |
void | UpdateProgress (double amount) |
vtkInformation * | GetInputArrayInformation (int idx) |
void | RemoveAllInputs () |
vtkDataObject * | GetOutputDataObject (int port) |
virtual void | RemoveInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | RemoveInputConnection (int port, int idx) |
virtual void | RemoveAllInputConnections (int port) |
int | GetNumberOfInputConnections (int port) |
int | GetTotalNumberOfInputConnections () |
vtkAlgorithmOutput * | GetInputConnection (int port, int index) |
vtkAlgorithm * | GetInputAlgorithm (int port, int index, int &algPort) |
vtkAlgorithm * | GetInputAlgorithm (int port, int index) |
vtkExecutive * | GetInputExecutive (int port, int index) |
vtkInformation * | GetInputInformation (int port, int index) |
vtkInformation * | GetOutputInformation (int port) |
virtual void | UpdateInformation () |
virtual void | PropagateUpdateExtent () |
virtual void | UpdateWholeExtent () |
void | ConvertTotalInputToPortConnection (int ind, int &port, int &conn) |
virtual double | ComputePriority () |
int | SetUpdateExtentToWholeExtent (int port) |
int | SetUpdateExtentToWholeExtent () |
void | SetUpdateExtent (int port, int extent[6]) |
int | ProcessRequest (vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo) |
virtual int | ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, unsigned long *mtime) |
virtual vtkInformation * | GetInformation () |
virtual void | SetInformation (vtkInformation *) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
virtual void | SetAbortExecute (int) |
virtual int | GetAbortExecute () |
virtual void | AbortExecuteOn () |
virtual void | AbortExecuteOff () |
virtual void | SetProgress (double) |
virtual double | GetProgress () |
void | SetProgressText (const char *ptext) |
virtual char * | GetProgressText () |
virtual unsigned long | GetErrorCode () |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType) |
virtual void | SetInputArrayToProcess (int idx, vtkInformation *info) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName) |
vtkDataObject * | GetInputDataObject (int port, int connection) |
virtual void | SetInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | SetInputConnection (vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (vtkAlgorithmOutput *input) |
virtual void | SetInputDataObject (int port, vtkDataObject *data) |
virtual void | SetInputDataObject (vtkDataObject *data) |
virtual void | AddInputDataObject (int port, vtkDataObject *data) |
virtual void | AddInputDataObject (vtkDataObject *data) |
vtkAlgorithmOutput * | GetOutputPort (int index) |
vtkAlgorithmOutput * | GetOutputPort () |
vtkAlgorithm * | GetInputAlgorithm () |
vtkExecutive * | GetInputExecutive () |
vtkInformation * | GetInputInformation () |
virtual void | Update (int port) |
virtual void | Update () |
virtual void | SetReleaseDataFlag (int) |
virtual int | GetReleaseDataFlag () |
void | ReleaseDataFlagOn () |
void | ReleaseDataFlagOff () |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, vtkDataObject *output) |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, int extentType) |
void | SetUpdateExtent (int port, int piece, int numPieces, int ghostLevel) |
void | SetUpdateExtent (int piece, int numPieces, int ghostLevel) |
void | SetUpdateExtent (int extent[6]) |
int * | GetUpdateExtent () |
int * | GetUpdateExtent (int port) |
void | GetUpdateExtent (int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
void | GetUpdateExtent (int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
void | GetUpdateExtent (int extent[6]) |
void | GetUpdateExtent (int port, int extent[6]) |
int | GetUpdatePiece () |
int | GetUpdatePiece (int port) |
int | GetUpdateNumberOfPieces () |
int | GetUpdateNumberOfPieces (int port) |
int | GetUpdateGhostLevel () |
int | GetUpdateGhostLevel (int port) |
Static Public Member Functions | |
static vtkImageBSplineCoefficients * | New () |
static int | IsTypeOf (const char *type) |
static vtkImageBSplineCoefficients * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static int | IsTypeOf (const char *type) |
static vtkThreadedImageAlgorithm * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static int | IsTypeOf (const char *type) |
static vtkImageAlgorithm * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static vtkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static vtkAlgorithm * | SafeDownCast (vtkObjectBase *o) |
static void | SetDefaultExecutivePrototype (vtkExecutive *proto) |
static vtkInformationIntegerKey * | INPUT_IS_OPTIONAL () |
static vtkInformationIntegerKey * | INPUT_IS_REPEATABLE () |
static vtkInformationInformationVectorKey * | INPUT_REQUIRED_FIELDS () |
static vtkInformationStringVectorKey * | INPUT_REQUIRED_DATA_TYPE () |
static vtkInformationInformationVectorKey * | INPUT_ARRAYS_TO_PROCESS () |
static vtkInformationIntegerKey * | INPUT_PORT () |
static vtkInformationIntegerKey * | INPUT_CONNECTION () |
static vtkInformationIntegerKey * | PRESERVES_DATASET () |
static vtkInformationIntegerKey * | PRESERVES_GEOMETRY () |
static vtkInformationIntegerKey * | PRESERVES_BOUNDS () |
static vtkInformationIntegerKey * | PRESERVES_TOPOLOGY () |
static vtkInformationIntegerKey * | PRESERVES_ATTRIBUTES () |
static vtkInformationIntegerKey * | PRESERVES_RANGES () |
static vtkInformationIntegerKey * | MANAGES_METAINFORMATION () |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkImageBSplineCoefficients () | |
~vtkImageBSplineCoefficients () | |
virtual void | AllocateOutputData (vtkImageData *out, vtkInformation *outInfo, int *uExtent) |
virtual vtkImageData * | AllocateOutputData (vtkDataObject *out, vtkInformation *outInfo) |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual void | ThreadedExecute (vtkImageData *inData, vtkImageData *outData, int outExt[6], int threadId) |
![]() | |
vtkThreadedImageAlgorithm () | |
~vtkThreadedImageAlgorithm () | |
![]() | |
vtkImageAlgorithm () | |
~vtkImageAlgorithm () | |
virtual void | CopyInputArrayAttributesToOutput (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
virtual void | ExecuteDataWithInformation (vtkDataObject *output, vtkInformation *outInfo) |
virtual void | ExecuteData (vtkDataObject *output) |
virtual void | Execute () |
virtual void | CopyAttributeData (vtkImageData *in, vtkImageData *out, vtkInformationVector **inputVector) |
virtual int | FillOutputPortInformation (int port, vtkInformation *info) |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
![]() | |
vtkAlgorithm () | |
~vtkAlgorithm () | |
virtual void | SetNumberOfInputPorts (int n) |
virtual void | SetNumberOfOutputPorts (int n) |
int | InputPortIndexInRange (int index, const char *action) |
int | OutputPortIndexInRange (int index, const char *action) |
int | GetInputArrayAssociation (int idx, vtkInformationVector **inputVector) |
virtual vtkExecutive * | CreateDefaultExecutive () |
virtual void | ReportReferences (vtkGarbageCollector *) |
virtual void | SetNumberOfInputConnections (int port, int n) |
int | GetInputArrayAssociation (int idx, int connection, vtkInformationVector **inputVector) |
int | GetInputArrayAssociation (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkInformation * | GetInputArrayFieldInformation (int idx, vtkInformationVector **inputVector) |
virtual void | SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input) |
void | SetInputDataInternal (int port, vtkDataObject *input) |
void | AddInputDataInternal (int port, vtkDataObject *input) |
virtual void | SetErrorCode (unsigned long) |
Protected Attributes | |
int | SplineDegree |
int | BorderMode |
int | OutputScalarType |
int | Bypass |
int | DataWasPassed |
int | Iteration |
![]() | |
vtkMultiThreader * | Threader |
int | NumberOfThreads |
![]() | |
vtkInformation * | Information |
double | Progress |
char * | ProgressText |
unsigned long | ErrorCode |
Additional Inherited Members | |
![]() | |
int | AbortExecute |
![]() | |
static vtkInformationIntegerKey * | PORT_REQUIREMENTS_FILLED () |
![]() | |
static vtkExecutive * | DefaultExecutivePrototype |
convert image to b-spline knots
vtkImageBSplineCoefficients prepares an image for b-spline interpolation by converting the image values into b-spline knot coefficients. It is a necessary pre-filtering step before applying b-spline interpolation with vtkImageReslice.
This class is based on code provided by Philippe Thevenaz of EPFL, Lausanne, Switzerland. Please acknowledge his contribution by citing the following paper: [1] P. Thevenaz, T. Blu, M. Unser, "Interpolation Revisited," IEEE Transactions on Medical Imaging 19(7):739-758, 2000.
The clamped boundary condition (which is the default) is taken from code presented in the following paper: [2] D. Ruijters, P. Thevenaz, "GPU Prefilter for Accurate Cubic B-spline Interpolation," The Computer Journal, doi: 10.1093/comjnl/bxq086, 2010.
Definition at line 55 of file vtkImageBSplineCoefficients.h.
Definition at line 60 of file vtkImageBSplineCoefficients.h.
|
protected |
|
protected |
|
static |
|
static |
|
virtual |
Reimplemented from vtkThreadedImageAlgorithm.
|
static |
|
protectedvirtual |
Reimplemented from vtkThreadedImageAlgorithm.
vtkImageBSplineCoefficients* vtkImageBSplineCoefficients::NewInstance | ( | ) | const |
void vtkImageBSplineCoefficients::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
|
virtual |
Set the degree of the spline polynomial. The default value is 3, and the maximum is 9.
|
virtual |
Set the degree of the spline polynomial. The default value is 3, and the maximum is 9.
|
virtual |
Set the border mode. The filter that is used to create the coefficients must repeat the image somehow to make a theoritically infinite input. The default is to clamp values that are off the edge of the image, to the value at the closest point on the edge. The other ways of virtually extending the image are to produce mirrored copies, which results in optimal smoothness at the boundary, or to repeat the image, which results in a cyclic or periodic spline.
|
inline |
Set the border mode. The filter that is used to create the coefficients must repeat the image somehow to make a theoritically infinite input. The default is to clamp values that are off the edge of the image, to the value at the closest point on the edge. The other ways of virtually extending the image are to produce mirrored copies, which results in optimal smoothness at the boundary, or to repeat the image, which results in a cyclic or periodic spline.
Definition at line 81 of file vtkImageBSplineCoefficients.h.
|
inline |
Set the border mode. The filter that is used to create the coefficients must repeat the image somehow to make a theoritically infinite input. The default is to clamp values that are off the edge of the image, to the value at the closest point on the edge. The other ways of virtually extending the image are to produce mirrored copies, which results in optimal smoothness at the boundary, or to repeat the image, which results in a cyclic or periodic spline.
Definition at line 83 of file vtkImageBSplineCoefficients.h.
|
inline |
Set the border mode. The filter that is used to create the coefficients must repeat the image somehow to make a theoritically infinite input. The default is to clamp values that are off the edge of the image, to the value at the closest point on the edge. The other ways of virtually extending the image are to produce mirrored copies, which results in optimal smoothness at the boundary, or to repeat the image, which results in a cyclic or periodic spline.
Definition at line 85 of file vtkImageBSplineCoefficients.h.
|
virtual |
Set the border mode. The filter that is used to create the coefficients must repeat the image somehow to make a theoritically infinite input. The default is to clamp values that are off the edge of the image, to the value at the closest point on the edge. The other ways of virtually extending the image are to produce mirrored copies, which results in optimal smoothness at the boundary, or to repeat the image, which results in a cyclic or periodic spline.
const char* vtkImageBSplineCoefficients::GetBorderModeAsString | ( | ) |
Set the border mode. The filter that is used to create the coefficients must repeat the image somehow to make a theoritically infinite input. The default is to clamp values that are off the edge of the image, to the value at the closest point on the edge. The other ways of virtually extending the image are to produce mirrored copies, which results in optimal smoothness at the boundary, or to repeat the image, which results in a cyclic or periodic spline.
|
virtual |
Set the scalar type of the output. Default is float. Floating-point output is used to avoid overflow, since the range of the output values is larger than the input values.
|
virtual |
Set the scalar type of the output. Default is float. Floating-point output is used to avoid overflow, since the range of the output values is larger than the input values.
|
inline |
Set the scalar type of the output. Default is float. Floating-point output is used to avoid overflow, since the range of the output values is larger than the input values.
Definition at line 97 of file vtkImageBSplineCoefficients.h.
|
inline |
Set the scalar type of the output. Default is float. Floating-point output is used to avoid overflow, since the range of the output values is larger than the input values.
Definition at line 99 of file vtkImageBSplineCoefficients.h.
const char* vtkImageBSplineCoefficients::GetOutputScalarTypeAsString | ( | ) |
Set the scalar type of the output. Default is float. Floating-point output is used to avoid overflow, since the range of the output values is larger than the input values.
|
virtual |
Bypass the filter, do not do any processing. If this is on, then the output data will reference the input data directly, and the output type will be the same as the input type. This is useful a downstream filter sometimes uses b-spline interpolation and sometimes uses other forms of interpolation.
|
virtual |
Bypass the filter, do not do any processing. If this is on, then the output data will reference the input data directly, and the output type will be the same as the input type. This is useful a downstream filter sometimes uses b-spline interpolation and sometimes uses other forms of interpolation.
|
virtual |
Bypass the filter, do not do any processing. If this is on, then the output data will reference the input data directly, and the output type will be the same as the input type. This is useful a downstream filter sometimes uses b-spline interpolation and sometimes uses other forms of interpolation.
|
virtual |
Bypass the filter, do not do any processing. If this is on, then the output data will reference the input data directly, and the output type will be the same as the input type. This is useful a downstream filter sometimes uses b-spline interpolation and sometimes uses other forms of interpolation.
int vtkImageBSplineCoefficients::CheckBounds | ( | const double | point[3] | ) |
Check a point against the image bounds. Return 0 if out of bounds, and 1 if inside bounds. Calling Evaluate on a point outside the bounds will not generate an error, but the value returned will depend on the BorderMode.
void vtkImageBSplineCoefficients::Evaluate | ( | const double | point[3], |
double * | value | ||
) |
Interpolate a value from the image. You must call Update() before calling this method for the first time. The first signature can return multiple components, while the second signature is for use on single-component images.
double vtkImageBSplineCoefficients::Evaluate | ( | double | x, |
double | y, | ||
double | z | ||
) |
Interpolate a value from the image. You must call Update() before calling this method for the first time. The first signature can return multiple components, while the second signature is for use on single-component images.
|
inline |
Interpolate a value from the image. You must call Update() before calling this method for the first time. The first signature can return multiple components, while the second signature is for use on single-component images.
Definition at line 128 of file vtkImageBSplineCoefficients.h.
|
virtual |
Internal method. Override SplitExtent so that the full extent is available in the direction currently being processed.
Reimplemented from vtkThreadedImageAlgorithm.
|
protectedvirtual |
Allocate the output data. This will be called before RequestData, it is not necessary for subclasses to call this method themselves.
Reimplemented from vtkImageAlgorithm.
|
protectedvirtual |
Allocate the output data. This will be called before RequestData, it is not necessary for subclasses to call this method themselves.
Reimplemented from vtkImageAlgorithm.
|
protectedvirtual |
This is called by the superclass. This is the method you should override.
Reimplemented from vtkThreadedImageAlgorithm.
|
protectedvirtual |
Subclasses can reimplement this method to collect information from their inputs and set information for their outputs.
Reimplemented from vtkImageAlgorithm.
|
protectedvirtual |
Subclasses can reimplement this method to translate the update extent requests from each output port into update extent requests for the input connections.
Reimplemented from vtkImageAlgorithm.
|
protectedvirtual |
Reimplemented from vtkThreadedImageAlgorithm.
|
protected |
Definition at line 155 of file vtkImageBSplineCoefficients.h.
|
protected |
Definition at line 156 of file vtkImageBSplineCoefficients.h.
|
protected |
Definition at line 157 of file vtkImageBSplineCoefficients.h.
|
protected |
Definition at line 158 of file vtkImageBSplineCoefficients.h.
|
protected |
Definition at line 159 of file vtkImageBSplineCoefficients.h.
|
protected |
Definition at line 160 of file vtkImageBSplineCoefficients.h.