VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkImageResize Class Reference

High-quality image resizing filter. More...

#include <vtkImageResize.h>

Inheritance diagram for vtkImageResize:
Inheritance graph
[legend]
Collaboration diagram for vtkImageResize:
Collaboration graph
[legend]

List of all members.

Public Types

enum  { OUTPUT_DIMENSIONS, OUTPUT_SPACING, MAGNIFICATION_FACTORS }
typedef vtkThreadedImageAlgorithm Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
unsigned long int GetMTime ()
virtual void SetResizeMethod (int)
virtual int GetResizeMethod ()
void SetResizeMethodToOutputDimensions ()
void SetResizeMethodToOutputSpacing ()
void SetResizeMethodToMagnificationFactors ()
virtual const char * GetResizeMethodAsString ()
virtual void SetOutputDimensions (int, int, int)
virtual void SetOutputDimensions (int[3])
virtual intGetOutputDimensions ()
virtual void GetOutputDimensions (int &, int &, int &)
virtual void GetOutputDimensions (int[3])
virtual void SetOutputSpacing (double, double, double)
virtual void SetOutputSpacing (double[3])
virtual doubleGetOutputSpacing ()
virtual void GetOutputSpacing (double &, double &, double &)
virtual void GetOutputSpacing (double[3])
virtual void SetMagnificationFactors (double, double, double)
virtual void SetMagnificationFactors (double[3])
virtual doubleGetMagnificationFactors ()
virtual void GetMagnificationFactors (double &, double &, double &)
virtual void GetMagnificationFactors (double[3])
virtual void SetBorder (int)
virtual void BorderOn ()
virtual void BorderOff ()
virtual int GetBorder ()
virtual void SetCropping (int)
virtual void CroppingOn ()
virtual void CroppingOff ()
virtual int GetCropping ()
virtual void SetCroppingRegion (double, double, double, double, double, double)
virtual void SetCroppingRegion (double[6])
virtual doubleGetCroppingRegion ()
virtual void GetCroppingRegion (double &, double &, double &, double &, double &, double &)
virtual void GetCroppingRegion (double[6])
virtual void SetInterpolate (int)
virtual void InterpolateOn ()
virtual void InterpolateOff ()
virtual int GetInterpolate ()
virtual void SetInterpolator (vtkAbstractImageInterpolator *sampler)
virtual
vtkAbstractImageInterpolator
GetInterpolator ()

Static Public Member Functions

static vtkImageResizeNew ()
static int IsTypeOf (const char *type)
static vtkImageResizeSafeDownCast (vtkObject *o)

Protected Member Functions

 vtkImageResize ()
 ~vtkImageResize ()
virtual
vtkAbstractImageInterpolator
GetInternalInterpolator ()
virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual void ThreadedRequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int ext[6], int id)

Protected Attributes

int ResizeMethod
int OutputDimensions [3]
double OutputSpacing [3]
double MagnificationFactors [3]
int Border
int Cropping
double CroppingRegion [6]
double IndexStretch [3]
double IndexTranslate [3]
vtkAbstractImageInterpolatorInterpolator
vtkAbstractImageInterpolatorNNInterpolator
int Interpolate

Detailed Description

High-quality image resizing filter.

vtkImageResize will magnify or shrink an image with interpolation and antialiasing. The resizing is done with a 5-lobe Lanczos-windowed sinc filter that is bandlimited to the output sampling frequency in order to avoid aliasing when the image size is reduced. This filter utilizes a O(n) algorithm to provide good effiency even though the filtering kernel is large. The sinc interpolator can be turned off if nearest-neighbor interpolation is required, or it can be replaced with a different vtkImageInterpolator object.

Thanks:
Thanks to David Gobbi for contributing this class to VTK.
Tests:
vtkImageResize (Tests)

Definition at line 40 of file vtkImageResize.h.


Member Typedef Documentation

Reimplemented from vtkThreadedImageAlgorithm.

Definition at line 44 of file vtkImageResize.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
OUTPUT_DIMENSIONS 
OUTPUT_SPACING 
MAGNIFICATION_FACTORS 

Definition at line 47 of file vtkImageResize.h.


Constructor & Destructor Documentation

vtkImageResize::vtkImageResize ( ) [protected]
vtkImageResize::~vtkImageResize ( ) [protected]

Member Function Documentation

static vtkImageResize* vtkImageResize::New ( ) [static]

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkAlgorithm.

virtual const char* vtkImageResize::GetClassName ( ) [virtual]

Reimplemented from vtkThreadedImageAlgorithm.

static int vtkImageResize::IsTypeOf ( const char *  name) [static]

Return 1 if this class type 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 vtkThreadedImageAlgorithm.

virtual int vtkImageResize::IsA ( const char *  name) [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 vtkThreadedImageAlgorithm.

static vtkImageResize* vtkImageResize::SafeDownCast ( vtkObject o) [static]

Reimplemented from vtkThreadedImageAlgorithm.

void vtkImageResize::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [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 vtkThreadedImageAlgorithm.

virtual void vtkImageResize::SetResizeMethod ( int  ) [virtual]

The resizing method to use. The default is to set the output image dimensions, and allow the filter to resize the image to these new dimensions. It is also possible to resize the image by setting the output image spacing or by setting a magnification factor.

virtual int vtkImageResize::GetResizeMethod ( ) [virtual]

The resizing method to use. The default is to set the output image dimensions, and allow the filter to resize the image to these new dimensions. It is also possible to resize the image by setting the output image spacing or by setting a magnification factor.

void vtkImageResize::SetResizeMethodToOutputDimensions ( ) [inline]

The resizing method to use. The default is to set the output image dimensions, and allow the filter to resize the image to these new dimensions. It is also possible to resize the image by setting the output image spacing or by setting a magnification factor.

Definition at line 61 of file vtkImageResize.h.

void vtkImageResize::SetResizeMethodToOutputSpacing ( ) [inline]

The resizing method to use. The default is to set the output image dimensions, and allow the filter to resize the image to these new dimensions. It is also possible to resize the image by setting the output image spacing or by setting a magnification factor.

Definition at line 63 of file vtkImageResize.h.

void vtkImageResize::SetResizeMethodToMagnificationFactors ( ) [inline]

The resizing method to use. The default is to set the output image dimensions, and allow the filter to resize the image to these new dimensions. It is also possible to resize the image by setting the output image spacing or by setting a magnification factor.

Definition at line 65 of file vtkImageResize.h.

virtual const char* vtkImageResize::GetResizeMethodAsString ( ) [virtual]

The resizing method to use. The default is to set the output image dimensions, and allow the filter to resize the image to these new dimensions. It is also possible to resize the image by setting the output image spacing or by setting a magnification factor.

virtual void vtkImageResize::SetOutputDimensions ( int  ,
int  ,
int   
) [virtual]

The desired output dimensions. This is only used if the ResizeMethod is set to OutputDimensions. If you want to keep one of the image dimensions the same as the input, then set that dimension to -1.

virtual void vtkImageResize::SetOutputDimensions ( int  [3]) [virtual]

The desired output dimensions. This is only used if the ResizeMethod is set to OutputDimensions. If you want to keep one of the image dimensions the same as the input, then set that dimension to -1.

virtual int* vtkImageResize::GetOutputDimensions ( ) [virtual]

The desired output dimensions. This is only used if the ResizeMethod is set to OutputDimensions. If you want to keep one of the image dimensions the same as the input, then set that dimension to -1.

virtual void vtkImageResize::GetOutputDimensions ( int ,
int ,
int  
) [virtual]

The desired output dimensions. This is only used if the ResizeMethod is set to OutputDimensions. If you want to keep one of the image dimensions the same as the input, then set that dimension to -1.

virtual void vtkImageResize::GetOutputDimensions ( int  [3]) [virtual]

The desired output dimensions. This is only used if the ResizeMethod is set to OutputDimensions. If you want to keep one of the image dimensions the same as the input, then set that dimension to -1.

virtual void vtkImageResize::SetOutputSpacing ( double  ,
double  ,
double   
) [virtual]

The desired output spacing. This is only used if the ResizeMethod is set to OutputSpacing. If you want to keep one of the original spacing values, then set that spacing value to zero.

virtual void vtkImageResize::SetOutputSpacing ( double  [3]) [virtual]

The desired output spacing. This is only used if the ResizeMethod is set to OutputSpacing. If you want to keep one of the original spacing values, then set that spacing value to zero.

virtual double* vtkImageResize::GetOutputSpacing ( ) [virtual]

The desired output spacing. This is only used if the ResizeMethod is set to OutputSpacing. If you want to keep one of the original spacing values, then set that spacing value to zero.

virtual void vtkImageResize::GetOutputSpacing ( double ,
double ,
double  
) [virtual]

The desired output spacing. This is only used if the ResizeMethod is set to OutputSpacing. If you want to keep one of the original spacing values, then set that spacing value to zero.

virtual void vtkImageResize::GetOutputSpacing ( double  [3]) [virtual]

The desired output spacing. This is only used if the ResizeMethod is set to OutputSpacing. If you want to keep one of the original spacing values, then set that spacing value to zero.

virtual void vtkImageResize::SetMagnificationFactors ( double  ,
double  ,
double   
) [virtual]

The desired magnification factor, meaning that the sample spacing will be reduced by this factor. This setting is only used if the ResizeMethod is set to MagnificationFactors.

virtual void vtkImageResize::SetMagnificationFactors ( double  [3]) [virtual]

The desired magnification factor, meaning that the sample spacing will be reduced by this factor. This setting is only used if the ResizeMethod is set to MagnificationFactors.

virtual double* vtkImageResize::GetMagnificationFactors ( ) [virtual]

The desired magnification factor, meaning that the sample spacing will be reduced by this factor. This setting is only used if the ResizeMethod is set to MagnificationFactors.

virtual void vtkImageResize::GetMagnificationFactors ( double ,
double ,
double  
) [virtual]

The desired magnification factor, meaning that the sample spacing will be reduced by this factor. This setting is only used if the ResizeMethod is set to MagnificationFactors.

virtual void vtkImageResize::GetMagnificationFactors ( double  [3]) [virtual]

The desired magnification factor, meaning that the sample spacing will be reduced by this factor. This setting is only used if the ResizeMethod is set to MagnificationFactors.

virtual void vtkImageResize::SetBorder ( int  ) [virtual]

If Border is Off (the default), then the centers of each of the corner voxels will be considered to form the rectangular bounds of the image. This is the way that VTK normally computes image bounds. If Border is On, then the image bounds will be defined by the outer corners of the voxels. This setting impacts how the resizing is done. For example, if a MagnificationFactor of two is applied to a 256x256 image, the output image will be 512x512 if Border is On, or 511x511 if Border is Off.

virtual void vtkImageResize::BorderOn ( ) [virtual]

If Border is Off (the default), then the centers of each of the corner voxels will be considered to form the rectangular bounds of the image. This is the way that VTK normally computes image bounds. If Border is On, then the image bounds will be defined by the outer corners of the voxels. This setting impacts how the resizing is done. For example, if a MagnificationFactor of two is applied to a 256x256 image, the output image will be 512x512 if Border is On, or 511x511 if Border is Off.

virtual void vtkImageResize::BorderOff ( ) [virtual]

If Border is Off (the default), then the centers of each of the corner voxels will be considered to form the rectangular bounds of the image. This is the way that VTK normally computes image bounds. If Border is On, then the image bounds will be defined by the outer corners of the voxels. This setting impacts how the resizing is done. For example, if a MagnificationFactor of two is applied to a 256x256 image, the output image will be 512x512 if Border is On, or 511x511 if Border is Off.

virtual int vtkImageResize::GetBorder ( ) [virtual]

If Border is Off (the default), then the centers of each of the corner voxels will be considered to form the rectangular bounds of the image. This is the way that VTK normally computes image bounds. If Border is On, then the image bounds will be defined by the outer corners of the voxels. This setting impacts how the resizing is done. For example, if a MagnificationFactor of two is applied to a 256x256 image, the output image will be 512x512 if Border is On, or 511x511 if Border is Off.

virtual void vtkImageResize::SetCropping ( int  ) [virtual]

Whether to crop the input image before resizing (Off by default). If this is On, then the CroppingRegion must be set.

virtual void vtkImageResize::CroppingOn ( ) [virtual]

Whether to crop the input image before resizing (Off by default). If this is On, then the CroppingRegion must be set.

virtual void vtkImageResize::CroppingOff ( ) [virtual]

Whether to crop the input image before resizing (Off by default). If this is On, then the CroppingRegion must be set.

virtual int vtkImageResize::GetCropping ( ) [virtual]

Whether to crop the input image before resizing (Off by default). If this is On, then the CroppingRegion must be set.

virtual void vtkImageResize::SetCroppingRegion ( double  ,
double  ,
double  ,
double  ,
double  ,
double   
) [virtual]

If Cropping is On, then the CroppingRegion will be used to crop the image before it is resized. The region must be specified in data coordinates, rather than voxel indices.

virtual void vtkImageResize::SetCroppingRegion ( double  [6]) [virtual]

If Cropping is On, then the CroppingRegion will be used to crop the image before it is resized. The region must be specified in data coordinates, rather than voxel indices.

virtual double* vtkImageResize::GetCroppingRegion ( ) [virtual]

If Cropping is On, then the CroppingRegion will be used to crop the image before it is resized. The region must be specified in data coordinates, rather than voxel indices.

virtual void vtkImageResize::GetCroppingRegion ( double ,
double ,
double ,
double ,
double ,
double  
) [virtual]

If Cropping is On, then the CroppingRegion will be used to crop the image before it is resized. The region must be specified in data coordinates, rather than voxel indices.

virtual void vtkImageResize::GetCroppingRegion ( double  [6]) [virtual]

If Cropping is On, then the CroppingRegion will be used to crop the image before it is resized. The region must be specified in data coordinates, rather than voxel indices.

virtual void vtkImageResize::SetInterpolate ( int  ) [virtual]

Turn interpolation on or off (by default, interpolation is on).

virtual void vtkImageResize::InterpolateOn ( ) [virtual]

Turn interpolation on or off (by default, interpolation is on).

virtual void vtkImageResize::InterpolateOff ( ) [virtual]

Turn interpolation on or off (by default, interpolation is on).

virtual int vtkImageResize::GetInterpolate ( ) [virtual]

Turn interpolation on or off (by default, interpolation is on).

virtual void vtkImageResize::SetInterpolator ( vtkAbstractImageInterpolator sampler) [virtual]

Set the interpolator for resampling the data.

virtual vtkAbstractImageInterpolator* vtkImageResize::GetInterpolator ( ) [virtual]

Set the interpolator for resampling the data.

unsigned long int vtkImageResize::GetMTime ( ) [virtual]

Get the modified time of the filter.

Reimplemented from vtkObject.

virtual vtkAbstractImageInterpolator* vtkImageResize::GetInternalInterpolator ( ) [protected, virtual]
virtual int vtkImageResize::RequestInformation ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [protected, virtual]

Reimplemented from vtkImageAlgorithm.

virtual int vtkImageResize::RequestUpdateExtent ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [protected, virtual]

Reimplemented from vtkImageAlgorithm.

virtual int vtkImageResize::RequestData ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

This is called by the superclass. This is the method you should override.

Reimplemented from vtkThreadedImageAlgorithm.

virtual void vtkImageResize::ThreadedRequestData ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector,
vtkImageData ***  inData,
vtkImageData **  outData,
int  extent[6],
int  threadId 
) [protected, virtual]

If the subclass does not define an Execute method, then the task will be broken up, multiple threads will be spawned, and each thread will call this method. It is public so that the thread functions can call this method.

Reimplemented from vtkThreadedImageAlgorithm.


Member Data Documentation

Definition at line 158 of file vtkImageResize.h.

Definition at line 159 of file vtkImageResize.h.

Definition at line 160 of file vtkImageResize.h.

Definition at line 161 of file vtkImageResize.h.

Definition at line 162 of file vtkImageResize.h.

Definition at line 163 of file vtkImageResize.h.

Definition at line 164 of file vtkImageResize.h.

Definition at line 166 of file vtkImageResize.h.

Definition at line 167 of file vtkImageResize.h.

Definition at line 169 of file vtkImageResize.h.

Definition at line 170 of file vtkImageResize.h.

Definition at line 171 of file vtkImageResize.h.


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