VTK
|
interpolate data values from images More...
#include <vtkAbstractImageInterpolator.h>
Public Types | |
typedef vtkObject | Superclass |
Public Types inherited from vtkObject | |
typedef vtkObjectBase | Superclass |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkAbstractImageInterpolator * | NewInstance () const |
virtual void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | Initialize (vtkDataObject *data) |
virtual void | ReleaseData () |
void | DeepCopy (vtkAbstractImageInterpolator *obj) |
void | Update () |
double | Interpolate (double x, double y, double z, int component) |
bool | Interpolate (const double point[3], double *value) |
int | ComputeNumberOfComponents (int inputComponents) |
int | GetNumberOfComponents () |
virtual void | ComputeSupportSize (const double matrix[16], int support[3])=0 |
virtual bool | IsSeparable ()=0 |
virtual void | FreePrecomputedWeights (vtkInterpolationWeights *&weights) |
void | SetOutValue (double outValue) |
double | GetOutValue () |
void | SetTolerance (double tol) |
double | GetTolerance () |
void | SetComponentOffset (int offset) |
int | GetComponentOffset () |
void | SetComponentCount (int count) |
int | GetComponentCount () |
void | InterpolateIJK (const double point[3], double *value) |
void | InterpolateIJK (const float point[3], float *value) |
bool | CheckBoundsIJK (const double x[3]) |
bool | CheckBoundsIJK (const float x[3]) |
void | SetBorderMode (int mode) |
void | SetBorderModeToClamp () |
void | SetBorderModeToRepeat () |
void | SetBorderModeToMirror () |
int | GetBorderMode () |
const char * | GetBorderModeAsString () |
virtual void | PrecomputeWeightsForExtent (const double matrix[16], const int extent[6], int checkExtent[6], vtkInterpolationWeights *&weights) |
virtual void | PrecomputeWeightsForExtent (const float matrix[16], const int extent[6], int checkExtent[6], vtkInterpolationWeights *&weights) |
void | InterpolateRow (vtkInterpolationWeights *&weights, int xIdx, int yIdx, int zIdx, double *value, int n) |
void | InterpolateRow (vtkInterpolationWeights *&weights, int xIdx, int yIdx, int zIdx, float *value, int n) |
virtual double * | GetSpacing () |
virtual void | GetSpacing (double &, double &, double &) |
virtual void | GetSpacing (double[3]) |
virtual double * | GetOrigin () |
virtual void | GetOrigin (double &, double &, double &) |
virtual void | GetOrigin (double[3]) |
virtual int * | GetExtent () |
virtual void | GetExtent (int &, int &, int &, int &, int &, int &) |
virtual void | GetExtent (int[6]) |
virtual int * | GetWholeExtent () |
virtual void | GetWholeExtent (int &, int &, int &, int &, int &, int &) |
virtual void | GetWholeExtent (int[6]) |
Public Member Functions inherited from vtkObject | |
vtkObject * | NewInstance () const |
virtual void | DebugOn () |
virtual void | DebugOff () |
bool | GetDebug () |
void | SetDebug (bool debugFlag) |
virtual void | Modified () |
virtual unsigned long | GetMTime () |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
vtkCommand * | GetCommand (unsigned long tag) |
void | RemoveObserver (vtkCommand *) |
void | RemoveObservers (unsigned long event, vtkCommand *) |
void | RemoveObservers (const char *event, vtkCommand *) |
int | HasObserver (unsigned long event, vtkCommand *) |
int | HasObserver (const char *event, vtkCommand *) |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
int | HasObserver (unsigned long event) |
int | HasObserver (const char *event) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
int | InvokeEvent (unsigned long event, void *callData) |
int | InvokeEvent (const char *event, void *callData) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
virtual void | Delete () |
virtual void | FastDelete () |
void | Print (ostream &os) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
void | SetReferenceCount (int) |
void | PrintRevisions (ostream &) |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
int | GetReferenceCount () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkAbstractImageInterpolator * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkObject | |
static int | IsTypeOf (const char *type) |
static vtkObject * | SafeDownCast (vtkObjectBase *o) |
static vtkObject * | New () |
static void | BreakOnError () |
static void | SetGlobalWarningDisplay (int val) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static int | GetGlobalWarningDisplay () |
Static Public Member Functions inherited from vtkObjectBase | |
static int | IsTypeOf (const char *name) |
static vtkObjectBase * | New () |
Protected Attributes | |
vtkDataArray * | Scalars |
double | StructuredBoundsDouble [6] |
float | StructuredBoundsFloat [6] |
int | WholeExtent [6] |
int | Extent [6] |
double | Spacing [3] |
double | Origin [3] |
double | OutValue |
double | Tolerance |
int | BorderMode |
int | ComponentOffset |
int | ComponentCount |
vtkInterpolationInfo * | InterpolationInfo |
void(* | InterpolationFuncDouble )(vtkInterpolationInfo *info, const double point[3], double *outPtr) |
void(* | InterpolationFuncFloat )(vtkInterpolationInfo *info, const float point[3], float *outPtr) |
void(* | RowInterpolationFuncDouble )(vtkInterpolationWeights *weights, int idX, int idY, int idZ, double *outPtr, int n) |
void(* | RowInterpolationFuncFloat )(vtkInterpolationWeights *weights, int idX, int idY, int idZ, float *outPtr, int n) |
Protected Attributes inherited from vtkObject | |
bool | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
Protected Attributes inherited from vtkObjectBase | |
vtkAtomicInt32 | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
interpolate data values from images
vtkAbstractImageInterpolator provides an abstract interface for interpolating image data. You specify the data set you want to interpolate values from, then call Interpolate(x,y,z) to interpolate the data.
Definition at line 45 of file vtkAbstractImageInterpolator.h.
Definition at line 48 of file vtkAbstractImageInterpolator.h.
|
protected |
|
protected |
|
static |
|
virtual |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkObject.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
static |
|
protectedvirtual |
Reimplemented from vtkObject.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
vtkAbstractImageInterpolator* vtkAbstractImageInterpolator::NewInstance | ( | ) | const |
|
virtual |
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkObject.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
virtual |
Initialize the interpolator with the data that you wish to interpolate.
|
virtual |
Release any data stored by the interpolator.
void vtkAbstractImageInterpolator::DeepCopy | ( | vtkAbstractImageInterpolator * | obj | ) |
Copy the interpolator. It is possible to duplicate an interpolator by calling NewInstance() followed by DeepCopy().
void vtkAbstractImageInterpolator::Update | ( | ) |
Update the interpolator. If the interpolator has been modified by a Set method since Initialize() was called, you must call this method to update the interpolator before you can use it.
Get the result of interpolating the specified component of the input data, which should be set to zero if there is only one component. If the point is not within the bounds of the data set, then OutValue will be returned. This method is primarily meant for use by the wrapper languages.
Sample the input data. This is an inline method that calls the function that performs the appropriate interpolation for the data type. If the point is not within the bounds of the data set, then the return value is false, and each component will be set to the OutValue.
void vtkAbstractImageInterpolator::SetOutValue | ( | double | outValue | ) |
The value to return when the point is out of bounds.
|
inline |
The value to return when the point is out of bounds.
Definition at line 84 of file vtkAbstractImageInterpolator.h.
void vtkAbstractImageInterpolator::SetTolerance | ( | double | tol | ) |
The tolerance to apply when checking whether a point is out of bounds. This is a fractional distance relative to the voxel size, so a tolerance of 1 expands the bounds by one voxel.
|
inline |
The tolerance to apply when checking whether a point is out of bounds. This is a fractional distance relative to the voxel size, so a tolerance of 1 expands the bounds by one voxel.
Definition at line 92 of file vtkAbstractImageInterpolator.h.
void vtkAbstractImageInterpolator::SetComponentOffset | ( | int | offset | ) |
This method specifies which component of the input will be interpolated, or if ComponentCount is also set, it specifies the first component. When the interpolation is performed, it will be clamped to the number of available components.
|
inline |
This method specifies which component of the input will be interpolated, or if ComponentCount is also set, it specifies the first component. When the interpolation is performed, it will be clamped to the number of available components.
Definition at line 101 of file vtkAbstractImageInterpolator.h.
void vtkAbstractImageInterpolator::SetComponentCount | ( | int | count | ) |
This method specifies the number of components to extract. The default value is -1, which extracts all available components. When the interpolation is performed, this will be clamped to the number of available components.
|
inline |
This method specifies the number of components to extract. The default value is -1, which extracts all available components. When the interpolation is performed, this will be clamped to the number of available components.
Definition at line 110 of file vtkAbstractImageInterpolator.h.
Compute the number of output components based on the ComponentOffset, ComponentCount, and the number of components in the input data.
int vtkAbstractImageInterpolator::GetNumberOfComponents | ( | ) |
Get the number of components that will be returned when Interpolate() is called. This is only valid after initialization. Before then, use ComputeNumberOfComponents instead.
A version of Interpolate that takes structured coords instead of data coords. Structured coords are the data coords after subtracting the Origin and dividing by the Spacing.
Definition at line 287 of file vtkAbstractImageInterpolator.h.
A version of Interpolate that takes structured coords instead of data coords. Structured coords are the data coords after subtracting the Origin and dividing by the Spacing.
Definition at line 293 of file vtkAbstractImageInterpolator.h.
|
inline |
Check an x,y,z point to see if it is within the bounds for the structured coords of the image. This is meant to be called prior to InterpolateIJK. The bounds that are checked against are the input image extent plus the tolerance.
Definition at line 299 of file vtkAbstractImageInterpolator.h.
|
inline |
Check an x,y,z point to see if it is within the bounds for the structured coords of the image. This is meant to be called prior to InterpolateIJK. The bounds that are checked against are the input image extent plus the tolerance.
Definition at line 307 of file vtkAbstractImageInterpolator.h.
void vtkAbstractImageInterpolator::SetBorderMode | ( | int | mode | ) |
The border mode (default: clamp). This controls how out-of-bounds lookups are handled, i.e. how data will be extrapolated beyond the bounds of the image. The default is to clamp the lookup point to the bounds. The other modes wrap around to the opposite boundary, or mirror the image at the boundary.
|
inline |
The border mode (default: clamp). This controls how out-of-bounds lookups are handled, i.e. how data will be extrapolated beyond the bounds of the image. The default is to clamp the lookup point to the bounds. The other modes wrap around to the opposite boundary, or mirror the image at the boundary.
Definition at line 146 of file vtkAbstractImageInterpolator.h.
|
inline |
The border mode (default: clamp). This controls how out-of-bounds lookups are handled, i.e. how data will be extrapolated beyond the bounds of the image. The default is to clamp the lookup point to the bounds. The other modes wrap around to the opposite boundary, or mirror the image at the boundary.
Definition at line 148 of file vtkAbstractImageInterpolator.h.
|
inline |
The border mode (default: clamp). This controls how out-of-bounds lookups are handled, i.e. how data will be extrapolated beyond the bounds of the image. The default is to clamp the lookup point to the bounds. The other modes wrap around to the opposite boundary, or mirror the image at the boundary.
Definition at line 150 of file vtkAbstractImageInterpolator.h.
|
inline |
The border mode (default: clamp). This controls how out-of-bounds lookups are handled, i.e. how data will be extrapolated beyond the bounds of the image. The default is to clamp the lookup point to the bounds. The other modes wrap around to the opposite boundary, or mirror the image at the boundary.
Definition at line 152 of file vtkAbstractImageInterpolator.h.
const char* vtkAbstractImageInterpolator::GetBorderModeAsString | ( | ) |
The border mode (default: clamp). This controls how out-of-bounds lookups are handled, i.e. how data will be extrapolated beyond the bounds of the image. The default is to clamp the lookup point to the bounds. The other modes wrap around to the opposite boundary, or mirror the image at the boundary.
|
pure virtual |
Get the support size for use in computing update extents. If the data will be sampled on a regular grid, then pass a matrix describing the structured coordinate transformation between the output and the input. Otherwise, pass NULL as the matrix to retrieve the full kernel size.
Implemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
pure virtual |
True if the interpolation is separable, which means that the weights can be precomputed in order to accelerate the interpolation. Any interpolator which is separable will implement the methods PrecomputeWeightsForExtent and InterpolateRow
Implemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
virtual |
If the data is going to be sampled on a regular grid, then the interpolation weights can be precomputed. A matrix must be supplied that provides a transformation between the provided extent and the structured coordinates of the input. This matrix must perform only permutation, scale, and translation, i.e. each of the three columns must have only one non-zero value. A checkExtent is provided that can be used to check which indices in the extent map to out-of-bounds coordinates in the input data.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
virtual |
If the data is going to be sampled on a regular grid, then the interpolation weights can be precomputed. A matrix must be supplied that provides a transformation between the provided extent and the structured coordinates of the input. This matrix must perform only permutation, scale, and translation, i.e. each of the three columns must have only one non-zero value. A checkExtent is provided that can be used to check which indices in the extent map to out-of-bounds coordinates in the input data.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
virtual |
Free the weights that were provided by PrecomputeWeightsForExtent.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
inline |
Get a row of samples, using the weights that were precomputed by PrecomputeWeightsForExtent. Note that each sample may have multiple components. It is possible to select which components will be returned by setting the ComponentOffset and ComponentCount.
Definition at line 315 of file vtkAbstractImageInterpolator.h.
|
inline |
Get a row of samples, using the weights that were precomputed by PrecomputeWeightsForExtent. Note that each sample may have multiple components. It is possible to select which components will be returned by setting the ComponentOffset and ComponentCount.
Definition at line 322 of file vtkAbstractImageInterpolator.h.
|
virtual |
Get the spacing of the data being interpolated.
Get the spacing of the data being interpolated.
|
virtual |
Get the spacing of the data being interpolated.
|
virtual |
Get the origin of the data being interpolated.
Get the origin of the data being interpolated.
|
virtual |
Get the origin of the data being interpolated.
|
virtual |
Get the extent of the data being interpolated.
|
virtual |
Get the extent of the data being interpolated.
|
virtual |
Get the extent of the data being interpolated.
|
virtual |
Get the whole extent of the data being interpolated, including parts of the data that are not currently in memory.
|
virtual |
Get the whole extent of the data being interpolated, including parts of the data that are not currently in memory.
|
virtual |
Get the whole extent of the data being interpolated, including parts of the data that are not currently in memory.
|
protectedpure virtual |
Subclass-specific updates.
Implemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
protectedpure virtual |
Subclass-specific copy.
Implemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
protectedvirtual |
Get the interpolation functions.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
protectedvirtual |
Get the interpolation functions.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
protectedvirtual |
Get the row interpolation functions.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
protectedvirtual |
Get the row interpolation functions.
Reimplemented in vtkImageSincInterpolator, vtkImageBSplineInterpolator, and vtkImageInterpolator.
|
protected |
Definition at line 253 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 254 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 255 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 256 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 257 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 258 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 259 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 260 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 261 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 262 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 263 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 264 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 267 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 269 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 271 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 274 of file vtkAbstractImageInterpolator.h.
|
protected |
Definition at line 277 of file vtkAbstractImageInterpolator.h.