Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

vtkImageAnisotropicDiffusion2D Class Reference

edge preserving smoothing. More...

#include <vtkImageAnisotropicDiffusion2D.h>

Inheritance diagram for vtkImageAnisotropicDiffusion2D:

Inheritance graph
[legend]
Collaboration diagram for vtkImageAnisotropicDiffusion2D:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
void SetNumberOfIterations (int num)
virtual int GetNumberOfIterations ()
virtual void SetDiffusionThreshold (float)
virtual float GetDiffusionThreshold ()
virtual void SetDiffusionFactor (float)
virtual float GetDiffusionFactor ()
virtual void SetFaces (int)
virtual int GetFaces ()
virtual void FacesOn ()
virtual void FacesOff ()
virtual void SetEdges (int)
virtual int GetEdges ()
virtual void EdgesOn ()
virtual void EdgesOff ()
virtual void SetCorners (int)
virtual int GetCorners ()
virtual void CornersOn ()
virtual void CornersOff ()
virtual void SetGradientMagnitudeThreshold (int)
virtual int GetGradientMagnitudeThreshold ()
virtual void GradientMagnitudeThresholdOn ()
virtual void GradientMagnitudeThresholdOff ()

Static Public Methods

vtkImageAnisotropicDiffusion2D * New ()
int IsTypeOf (const char *type)
vtkImageAnisotropicDiffusion2D * SafeDownCast (vtkObject *o)

Protected Methods

 vtkImageAnisotropicDiffusion2D ()
 ~vtkImageAnisotropicDiffusion2D ()
 vtkImageAnisotropicDiffusion2D (const vtkImageAnisotropicDiffusion2D &)
void operator= (const vtkImageAnisotropicDiffusion2D &)
void ThreadedExecute (vtkImageData *inData, vtkImageData *outData, int extent[6], int id)
void Iterate (vtkImageData *in, vtkImageData *out, float ar0, float ar1, int *coreExtent, int count)

Protected Attributes

int NumberOfIterations
float DiffusionThreshold
float DiffusionFactor
int Faces
int Edges
int Corners
int GradientMagnitudeThreshold

Detailed Description

edge preserving smoothing.

Date:
2000/12/10 20:09:03
Revision:
1.24
Thanks:
Thanks to C. Charles Law who developed this class.
vtkImageAnisotropicDiffusion2D diffuses a 2d image iteratively. The neighborhood of the diffusion is determined by the instance flags. If "Edges" is on the 4 edge connected voxels are included, and if "Corners" is on, the 4 corner connected voxels are included. "DiffusionFactor" determines how far a pixel value moves toward its neighbors, and is insensitive to the number of neighbors chosen. The diffusion is anisotropic because it only occurs when a gradient measure is below "GradientThreshold". Two gradient measures exist and are toggled by the "GradientMagnitudeThreshold" flag. When "GradientMagnitudeThreshold" is on, the magnitude of the gradient, computed by central differences, above "DiffusionThreshold" a voxel is not modified. The alternative measure examines each neighbor independently. The gradient between the voxel and the neighbor must be below the "DiffusionThreshold" for diffusion to occur with THAT neighbor.

See also:
vtkImageAnisotropicDiffusion3D
Examples:
vtkImageAnisotropicDiffusion2D (examples)

Definition at line 75 of file vtkImageAnisotropicDiffusion2D.h.


Constructor & Destructor Documentation

vtkImageAnisotropicDiffusion2D::vtkImageAnisotropicDiffusion2D   [protected]
 

vtkImageAnisotropicDiffusion2D::~vtkImageAnisotropicDiffusion2D   [inline, protected]
 

Definition at line 116 of file vtkImageAnisotropicDiffusion2D.h.

vtkImageAnisotropicDiffusion2D::vtkImageAnisotropicDiffusion2D const vtkImageAnisotropicDiffusion2D &    [inline, protected]
 

Definition at line 117 of file vtkImageAnisotropicDiffusion2D.h.


Member Function Documentation

vtkImageAnisotropicDiffusion2D* vtkImageAnisotropicDiffusion2D::New   [static]
 

Instantiate object with no start, end, or progress methods.

Reimplemented from vtkImageSpatialFilter.

virtual const char* vtkImageAnisotropicDiffusion2D::GetClassName   [virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkImageSpatialFilter.

int vtkImageAnisotropicDiffusion2D::IsTypeOf const char *    type [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 vtkImageSpatialFilter.

virtual int vtkImageAnisotropicDiffusion2D::IsA const char *    type [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 vtkImageSpatialFilter.

vtkImageAnisotropicDiffusion2D* vtkImageAnisotropicDiffusion2D::SafeDownCast vtkObject   o [static]
 

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkImageSpatialFilter.

void vtkImageAnisotropicDiffusion2D::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 vtkImageSpatialFilter.

void vtkImageAnisotropicDiffusion2D::SetNumberOfIterations int    num
 

This method sets the number of inputs which also affects the input neighborhood needed to compute one output pixel.

virtual int vtkImageAnisotropicDiffusion2D::GetNumberOfIterations   [virtual]
 

Get the number of iterations.

virtual void vtkImageAnisotropicDiffusion2D::SetDiffusionThreshold float    [virtual]
 

Set/Get the difference threshold that stops diffusion.

virtual float vtkImageAnisotropicDiffusion2D::GetDiffusionThreshold   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::SetDiffusionFactor float    [virtual]
 

Set/Get the difference factor

virtual float vtkImageAnisotropicDiffusion2D::GetDiffusionFactor   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::SetFaces int    [virtual]
 

Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).

virtual int vtkImageAnisotropicDiffusion2D::GetFaces   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::FacesOn   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::FacesOff   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::SetEdges int    [virtual]
 

virtual int vtkImageAnisotropicDiffusion2D::GetEdges   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::EdgesOn   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::EdgesOff   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::SetCorners int    [virtual]
 

virtual int vtkImageAnisotropicDiffusion2D::GetCorners   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::CornersOn   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::CornersOff   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::SetGradientMagnitudeThreshold int    [virtual]
 

Switch between gradient magnitude threshold and pixel gradient threshold.

virtual int vtkImageAnisotropicDiffusion2D::GetGradientMagnitudeThreshold   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::GradientMagnitudeThresholdOn   [virtual]
 

virtual void vtkImageAnisotropicDiffusion2D::GradientMagnitudeThresholdOff   [virtual]
 

void vtkImageAnisotropicDiffusion2D::operator= const vtkImageAnisotropicDiffusion2D &    [inline, protected]
 

Definition at line 118 of file vtkImageAnisotropicDiffusion2D.h.

void vtkImageAnisotropicDiffusion2D::ThreadedExecute vtkImageData   inData,
vtkImageData   outData,
int    extent[6],
int    id
[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 vtkImageToImageFilter.

void vtkImageAnisotropicDiffusion2D::Iterate vtkImageData   in,
vtkImageData   out,
float    ar0,
float    ar1,
int *    coreExtent,
int    count
[protected]
 


Member Data Documentation

int vtkImageAnisotropicDiffusion2D::NumberOfIterations [protected]
 

Definition at line 120 of file vtkImageAnisotropicDiffusion2D.h.

float vtkImageAnisotropicDiffusion2D::DiffusionThreshold [protected]
 

Definition at line 121 of file vtkImageAnisotropicDiffusion2D.h.

float vtkImageAnisotropicDiffusion2D::DiffusionFactor [protected]
 

Definition at line 122 of file vtkImageAnisotropicDiffusion2D.h.

int vtkImageAnisotropicDiffusion2D::Faces [protected]
 

Definition at line 124 of file vtkImageAnisotropicDiffusion2D.h.

int vtkImageAnisotropicDiffusion2D::Edges [protected]
 

Definition at line 125 of file vtkImageAnisotropicDiffusion2D.h.

int vtkImageAnisotropicDiffusion2D::Corners [protected]
 

Definition at line 126 of file vtkImageAnisotropicDiffusion2D.h.

int vtkImageAnisotropicDiffusion2D::GradientMagnitudeThreshold [protected]
 

Definition at line 128 of file vtkImageAnisotropicDiffusion2D.h.


The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:48:16 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001