#include <vtkImageToPolyDataFilter.h>
vtkImageToPolyDataFilter converts raster data (i.e., an image) into polygonal data (i.e., quads or n-sided polygons), with each polygon assigned a constant color. This is useful for writers that generate vector formats (i.e., CGM or PostScript). To use this filter, you specify how to quantize the color (or whether to use an image with a lookup table), and what style the output should be. The output is always polygons, but the choice is n x m quads (where n and m define the input image dimensions) "Pixelize" option; arbitrary polygons "Polygonalize" option; or variable number of quads of constant color generated along scan lines "RunLength" option.
The algorithm quantizes color in order to create coherent regions that the polygons can represent with good compression. By default, the input image is quantized to 256 colors using a 3-3-2 bits for red-green-blue. However, you can also supply a single component image and a lookup table, with the single component assumed to be an index into the table. (Note: a quantized image can be generated with the filter vtkImageQuantizeRGBToIndex.) The number of colors on output is equal to the number of colors in the input lookup table (or 256 if the built in linear ramp is used).
The output of the filter is polygons with a single color per polygon cell. If the output style is set to "Polygonalize", the polygons may have an large number of points (bounded by something like 2*(n+m)); and the polygon may not be convex which may cause rendering problems on some systems (use vtkTriangleFilter). Otherwise, each polygon will have four vertices. The output also contains scalar data defining RGB color in unsigned char form.
This filter defines constant cell colors. If you have a plotting device that supports Gouraud shading (linear interpolation of color), then superior algorithms are available for generating polygons from images.
Note that many plotting devices/formats support only a limited number of colors.
Definition at line 88 of file vtkImageToPolyDataFilter.h.
Public Types | |
typedef vtkPolyDataAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | SetOutputStyle (int) |
virtual int | GetOutputStyle () |
void | SetOutputStyleToPixelize () |
void | SetOutputStyleToPolygonalize () |
void | SetOutputStyleToRunLength () |
virtual void | SetColorMode (int) |
virtual int | GetColorMode () |
void | SetColorModeToLUT () |
void | SetColorModeToLinear256 () |
virtual void | SetLookupTable (vtkScalarsToColors *) |
virtual vtkScalarsToColors * | GetLookupTable () |
virtual void | SetSmoothing (int) |
virtual int | GetSmoothing () |
virtual void | SmoothingOn () |
virtual void | SmoothingOff () |
virtual void | SetNumberOfSmoothingIterations (int) |
virtual int | GetNumberOfSmoothingIterations () |
virtual void | SetDecimation (int) |
virtual int | GetDecimation () |
virtual void | DecimationOn () |
virtual void | DecimationOff () |
virtual void | SetDecimationError (double) |
virtual double | GetDecimationError () |
virtual void | SetError (int) |
virtual int | GetError () |
virtual void | SetSubImageSize (int) |
virtual int | GetSubImageSize () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkImageToPolyDataFilter * | SafeDownCast (vtkObject *o) |
static vtkImageToPolyDataFilter * | New () |
Protected Member Functions | |
vtkImageToPolyDataFilter () | |
~vtkImageToPolyDataFilter () | |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
virtual void | PixelizeImage (vtkUnsignedCharArray *pixels, int dims[3], double origin[3], double spacing[3], vtkPolyData *output) |
virtual void | PolygonalizeImage (vtkUnsignedCharArray *pixels, int dims[3], double origin[3], double spacing[3], vtkPolyData *output) |
virtual void | RunLengthImage (vtkUnsignedCharArray *pixels, int dims[3], double origin[3], double spacing[3], vtkPolyData *output) |
Protected Attributes | |
int | OutputStyle |
int | ColorMode |
int | Smoothing |
int | NumberOfSmoothingIterations |
int | Decimation |
double | DecimationError |
int | Error |
int | SubImageSize |
vtkScalarsToColors * | LookupTable |
vtkImageToPolyDataFilter::vtkImageToPolyDataFilter | ( | ) | [protected] |
vtkImageToPolyDataFilter::~vtkImageToPolyDataFilter | ( | ) | [protected] |
virtual const char* vtkImageToPolyDataFilter::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkPolyDataAlgorithm.
static int vtkImageToPolyDataFilter::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 vtkTypeRevisionMacro found in vtkSetGet.h.
Reimplemented from vtkPolyDataAlgorithm.
virtual int vtkImageToPolyDataFilter::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 vtkTypeRevisionMacro found in vtkSetGet.h.
Reimplemented from vtkPolyDataAlgorithm.
static vtkImageToPolyDataFilter* vtkImageToPolyDataFilter::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkPolyDataAlgorithm.
void vtkImageToPolyDataFilter::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 vtkPolyDataAlgorithm.
static vtkImageToPolyDataFilter* vtkImageToPolyDataFilter::New | ( | ) | [static] |
Instantiate object with initial number of colors 256.
Reimplemented from vtkPolyDataAlgorithm.
virtual void vtkImageToPolyDataFilter::SetOutputStyle | ( | int | ) | [virtual] |
Specify how to create the output. Pixelize means converting the image to quad polygons with a constant color per quad. Polygonalize means merging colors together into polygonal regions, and then smoothing the regions (if smoothing is turned on). RunLength means creating quad polygons that may encompass several pixels on a scan line. The default behavior is Polygonalize.
virtual int vtkImageToPolyDataFilter::GetOutputStyle | ( | ) | [virtual] |
Specify how to create the output. Pixelize means converting the image to quad polygons with a constant color per quad. Polygonalize means merging colors together into polygonal regions, and then smoothing the regions (if smoothing is turned on). RunLength means creating quad polygons that may encompass several pixels on a scan line. The default behavior is Polygonalize.
void vtkImageToPolyDataFilter::SetOutputStyleToPixelize | ( | ) | [inline] |
Specify how to create the output. Pixelize means converting the image to quad polygons with a constant color per quad. Polygonalize means merging colors together into polygonal regions, and then smoothing the regions (if smoothing is turned on). RunLength means creating quad polygons that may encompass several pixels on a scan line. The default behavior is Polygonalize.
Definition at line 106 of file vtkImageToPolyDataFilter.h.
void vtkImageToPolyDataFilter::SetOutputStyleToPolygonalize | ( | ) | [inline] |
Specify how to create the output. Pixelize means converting the image to quad polygons with a constant color per quad. Polygonalize means merging colors together into polygonal regions, and then smoothing the regions (if smoothing is turned on). RunLength means creating quad polygons that may encompass several pixels on a scan line. The default behavior is Polygonalize.
Definition at line 108 of file vtkImageToPolyDataFilter.h.
void vtkImageToPolyDataFilter::SetOutputStyleToRunLength | ( | ) | [inline] |
Specify how to create the output. Pixelize means converting the image to quad polygons with a constant color per quad. Polygonalize means merging colors together into polygonal regions, and then smoothing the regions (if smoothing is turned on). RunLength means creating quad polygons that may encompass several pixels on a scan line. The default behavior is Polygonalize.
Definition at line 110 of file vtkImageToPolyDataFilter.h.
virtual void vtkImageToPolyDataFilter::SetColorMode | ( | int | ) | [virtual] |
Specify how to quantize color.
virtual int vtkImageToPolyDataFilter::GetColorMode | ( | ) | [virtual] |
Specify how to quantize color.
void vtkImageToPolyDataFilter::SetColorModeToLUT | ( | ) | [inline] |
Specify how to quantize color.
Definition at line 118 of file vtkImageToPolyDataFilter.h.
void vtkImageToPolyDataFilter::SetColorModeToLinear256 | ( | ) | [inline] |
Specify how to quantize color.
Definition at line 120 of file vtkImageToPolyDataFilter.h.
virtual void vtkImageToPolyDataFilter::SetLookupTable | ( | vtkScalarsToColors * | ) | [virtual] |
Set/Get the vtkLookupTable to use. The lookup table is used when the color mode is set to LUT and a single component scalar is input.
virtual vtkScalarsToColors* vtkImageToPolyDataFilter::GetLookupTable | ( | ) | [virtual] |
Set/Get the vtkLookupTable to use. The lookup table is used when the color mode is set to LUT and a single component scalar is input.
virtual void vtkImageToPolyDataFilter::SetSmoothing | ( | int | ) | [virtual] |
If the output style is set to polygonalize, then you can control whether to smooth boundaries.
virtual int vtkImageToPolyDataFilter::GetSmoothing | ( | ) | [virtual] |
If the output style is set to polygonalize, then you can control whether to smooth boundaries.
virtual void vtkImageToPolyDataFilter::SmoothingOn | ( | ) | [virtual] |
If the output style is set to polygonalize, then you can control whether to smooth boundaries.
virtual void vtkImageToPolyDataFilter::SmoothingOff | ( | ) | [virtual] |
If the output style is set to polygonalize, then you can control whether to smooth boundaries.
virtual void vtkImageToPolyDataFilter::SetNumberOfSmoothingIterations | ( | int | ) | [virtual] |
Specify the number of smoothing iterations to smooth polygons. (Only in effect if output style is Polygonalize and smoothing is on.)
virtual int vtkImageToPolyDataFilter::GetNumberOfSmoothingIterations | ( | ) | [virtual] |
Specify the number of smoothing iterations to smooth polygons. (Only in effect if output style is Polygonalize and smoothing is on.)
virtual void vtkImageToPolyDataFilter::SetDecimation | ( | int | ) | [virtual] |
Turn on/off whether the final polygons should be decimated. whether to smooth boundaries.
virtual int vtkImageToPolyDataFilter::GetDecimation | ( | ) | [virtual] |
Turn on/off whether the final polygons should be decimated. whether to smooth boundaries.
virtual void vtkImageToPolyDataFilter::DecimationOn | ( | ) | [virtual] |
Turn on/off whether the final polygons should be decimated. whether to smooth boundaries.
virtual void vtkImageToPolyDataFilter::DecimationOff | ( | ) | [virtual] |
Turn on/off whether the final polygons should be decimated. whether to smooth boundaries.
virtual void vtkImageToPolyDataFilter::SetDecimationError | ( | double | ) | [virtual] |
Specify the error to use for decimation (if decimation is on). The error is an absolute number--the image spacing and dimensions are used to create points so the error should be consistent with the image size.
virtual double vtkImageToPolyDataFilter::GetDecimationError | ( | ) | [virtual] |
Specify the error to use for decimation (if decimation is on). The error is an absolute number--the image spacing and dimensions are used to create points so the error should be consistent with the image size.
virtual void vtkImageToPolyDataFilter::SetError | ( | int | ) | [virtual] |
Specify the error value between two colors where the colors are considered the same. Only use this if the color mode uses the default 256 table.
virtual int vtkImageToPolyDataFilter::GetError | ( | ) | [virtual] |
Specify the error value between two colors where the colors are considered the same. Only use this if the color mode uses the default 256 table.
virtual void vtkImageToPolyDataFilter::SetSubImageSize | ( | int | ) | [virtual] |
Specify the size (n by n pixels) of the largest region to polygonalize. When the OutputStyle is set to VTK_STYLE_POLYGONALIZE, large amounts of memory are used. In order to process large images, the image is broken into pieces that are at most Size pixels in width and height.
virtual int vtkImageToPolyDataFilter::GetSubImageSize | ( | ) | [virtual] |
Specify the size (n by n pixels) of the largest region to polygonalize. When the OutputStyle is set to VTK_STYLE_POLYGONALIZE, large amounts of memory are used. In order to process large images, the image is broken into pieces that are at most Size pixels in width and height.
virtual int vtkImageToPolyDataFilter::RequestData | ( | vtkInformation * | request, | |
vtkInformationVector ** | inputVector, | |||
vtkInformationVector * | outputVector | |||
) | [protected, virtual] |
This is called by the superclass. This is the method you should override.
Reimplemented from vtkPolyDataAlgorithm.
virtual int vtkImageToPolyDataFilter::FillInputPortInformation | ( | int | port, | |
vtkInformation * | info | |||
) | [protected, virtual] |
Fill the input port information objects for this algorithm. This is invoked by the first call to GetInputPortInformation for each port so subclasses can specify what they can handle.
Reimplemented from vtkPolyDataAlgorithm.
virtual void vtkImageToPolyDataFilter::PixelizeImage | ( | vtkUnsignedCharArray * | pixels, | |
int | dims[3], | |||
double | origin[3], | |||
double | spacing[3], | |||
vtkPolyData * | output | |||
) | [protected, virtual] |
virtual void vtkImageToPolyDataFilter::PolygonalizeImage | ( | vtkUnsignedCharArray * | pixels, | |
int | dims[3], | |||
double | origin[3], | |||
double | spacing[3], | |||
vtkPolyData * | output | |||
) | [protected, virtual] |
virtual void vtkImageToPolyDataFilter::RunLengthImage | ( | vtkUnsignedCharArray * | pixels, | |
int | dims[3], | |||
double | origin[3], | |||
double | spacing[3], | |||
vtkPolyData * | output | |||
) | [protected, virtual] |
int vtkImageToPolyDataFilter::OutputStyle [protected] |
Definition at line 188 of file vtkImageToPolyDataFilter.h.
int vtkImageToPolyDataFilter::ColorMode [protected] |
Definition at line 189 of file vtkImageToPolyDataFilter.h.
int vtkImageToPolyDataFilter::Smoothing [protected] |
Definition at line 190 of file vtkImageToPolyDataFilter.h.
int vtkImageToPolyDataFilter::NumberOfSmoothingIterations [protected] |
Definition at line 191 of file vtkImageToPolyDataFilter.h.
int vtkImageToPolyDataFilter::Decimation [protected] |
Definition at line 192 of file vtkImageToPolyDataFilter.h.
double vtkImageToPolyDataFilter::DecimationError [protected] |
Definition at line 193 of file vtkImageToPolyDataFilter.h.
int vtkImageToPolyDataFilter::Error [protected] |
Definition at line 194 of file vtkImageToPolyDataFilter.h.
int vtkImageToPolyDataFilter::SubImageSize [protected] |
Definition at line 195 of file vtkImageToPolyDataFilter.h.
vtkScalarsToColors* vtkImageToPolyDataFilter::LookupTable [protected] |
Definition at line 196 of file vtkImageToPolyDataFilter.h.