VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkImageResize Class Reference

High-quality image resizing filter. More...

#include <vtkImageResize.h>

Inherits vtkThreadedImageAlgorithm.

Collaboration diagram for vtkImageResize:
[legend]

Public Types

enum  { OUTPUT_DIMENSIONS, OUTPUT_SPACING, MAGNIFICATION_FACTORS }
 
typedef vtkThreadedImageAlgorithm Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkImageResizeNewInstance () const
 
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 int * GetOutputDimensions ()
 
virtual void GetOutputDimensions (int &, int &, int &)
 
virtual void GetOutputDimensions (int[3])
 
virtual void SetOutputSpacing (double, double, double)
 
virtual void SetOutputSpacing (double[3])
 
virtual double * GetOutputSpacing ()
 
virtual void GetOutputSpacing (double &, double &, double &)
 
virtual void GetOutputSpacing (double[3])
 
virtual void SetMagnificationFactors (double, double, double)
 
virtual void SetMagnificationFactors (double[3])
 
virtual double * GetMagnificationFactors ()
 
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 double * GetCroppingRegion ()
 
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 (vtkObjectBase *o)
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
 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 41 of file vtkImageResize.h.

Member Typedef Documentation

typedef vtkThreadedImageAlgorithm vtkImageResize::Superclass

Definition at line 45 of file vtkImageResize.h.

Member Enumeration Documentation

anonymous enum
Enumerator
OUTPUT_DIMENSIONS 
OUTPUT_SPACING 
MAGNIFICATION_FACTORS 

Definition at line 48 of file vtkImageResize.h.

Constructor & Destructor Documentation

vtkImageResize::vtkImageResize ( )
protected
vtkImageResize::~vtkImageResize ( )
protected

Member Function Documentation

static vtkImageResize* vtkImageResize::New ( )
static
static int vtkImageResize::IsTypeOf ( const char *  type)
static
virtual int vtkImageResize::IsA ( const char *  type)
virtual
static vtkImageResize* vtkImageResize::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkImageResize::NewInstanceInternal ( ) const
protectedvirtual
vtkImageResize* vtkImageResize::NewInstance ( ) const
void vtkImageResize::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
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 62 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 64 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 66 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 ( )

Get the modified time of the filter.

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

Member Data Documentation

int vtkImageResize::ResizeMethod
protected

Definition at line 159 of file vtkImageResize.h.

int vtkImageResize::OutputDimensions[3]
protected

Definition at line 160 of file vtkImageResize.h.

double vtkImageResize::OutputSpacing[3]
protected

Definition at line 161 of file vtkImageResize.h.

double vtkImageResize::MagnificationFactors[3]
protected

Definition at line 162 of file vtkImageResize.h.

int vtkImageResize::Border
protected

Definition at line 163 of file vtkImageResize.h.

int vtkImageResize::Cropping
protected

Definition at line 164 of file vtkImageResize.h.

double vtkImageResize::CroppingRegion[6]
protected

Definition at line 165 of file vtkImageResize.h.

double vtkImageResize::IndexStretch[3]
protected

Definition at line 167 of file vtkImageResize.h.

double vtkImageResize::IndexTranslate[3]
protected

Definition at line 168 of file vtkImageResize.h.

vtkAbstractImageInterpolator* vtkImageResize::Interpolator
protected

Definition at line 170 of file vtkImageResize.h.

vtkAbstractImageInterpolator* vtkImageResize::NNInterpolator
protected

Definition at line 171 of file vtkImageResize.h.

int vtkImageResize::Interpolate
protected

Definition at line 172 of file vtkImageResize.h.


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