VTK
|
edge preserving smoothing. More...
#include <vtkImageAnisotropicDiffusion3D.h>
Public Types | |
typedef vtkImageSpatialAlgorithm | Superclass |
![]() | |
typedef vtkThreadedImageAlgorithm | Superclass |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkImageAnisotropicDiffusion3D * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | SetNumberOfIterations (int num) |
virtual int | GetNumberOfIterations () |
virtual void | SetDiffusionThreshold (double) |
virtual double | GetDiffusionThreshold () |
virtual void | SetDiffusionFactor (double) |
virtual double | 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 () |
![]() | |
vtkImageSpatialAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual int * | GetKernelSize () |
virtual void | GetKernelSize (int &, int &, int &) |
virtual void | GetKernelSize (int[3]) |
virtual int * | GetKernelMiddle () |
virtual void | GetKernelMiddle (int &, int &, int &) |
virtual void | GetKernelMiddle (int[3]) |
Static Public Member Functions | |
static vtkImageAnisotropicDiffusion3D * | New () |
static int | IsTypeOf (const char *type) |
static vtkImageAnisotropicDiffusion3D * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static vtkImageSpatialAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static vtkImageSpatialAlgorithm * | SafeDownCast (vtkObjectBase *o) |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkImageAnisotropicDiffusion3D () | |
~vtkImageAnisotropicDiffusion3D () | |
void | ThreadedRequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int id) |
void | Iterate (vtkImageData *in, vtkImageData *out, double ar0, double ar1, double ar3, int *coreExtent, int count) |
![]() | |
vtkImageSpatialAlgorithm () | |
~vtkImageSpatialAlgorithm () | |
virtual int | RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
void | ComputeOutputWholeExtent (int extent[6], int handleBoundaries) |
virtual int | RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
void | InternalRequestUpdateExtent (int *extent, int *inExtent, int *wholeExtent) |
Protected Attributes | |
int | NumberOfIterations |
double | DiffusionThreshold |
double | DiffusionFactor |
int | Faces |
int | Edges |
int | Corners |
int | GradientMagnitudeThreshold |
![]() | |
int | KernelSize [3] |
int | KernelMiddle [3] |
int | HandleBoundaries |
edge preserving smoothing.
vtkImageAnisotropicDiffusion3D diffuses an volume iteratively. The neighborhood of the diffusion is determined by the instance flags. if "Faces" is on, the 6 voxels adjoined by faces are included in the neighborhood. If "Edges" is on the 12 edge connected voxels are included, and if "Corners" is on, the 8 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.
Definition at line 50 of file vtkImageAnisotropicDiffusion3D.h.
Definition at line 54 of file vtkImageAnisotropicDiffusion3D.h.
|
protected |
|
inlineprotected |
Definition at line 109 of file vtkImageAnisotropicDiffusion3D.h.
|
static |
|
static |
|
virtual |
Reimplemented from vtkImageSpatialAlgorithm.
|
static |
|
protectedvirtual |
Reimplemented from vtkImageSpatialAlgorithm.
vtkImageAnisotropicDiffusion3D* vtkImageAnisotropicDiffusion3D::NewInstance | ( | ) | const |
void vtkImageAnisotropicDiffusion3D::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
void vtkImageAnisotropicDiffusion3D::SetNumberOfIterations | ( | int | num | ) |
This method sets the number of interations which also affects the input neighborhood needed to compute one output pixel. Each iterations requires an extra pixel layer on the neighborhood. This is only relavent when you are trying to stream or are requesting a sub extent of the "wholeExtent".
|
virtual |
Get the number of iterations.
|
virtual |
Set/Get the difference threshold that stops diffusion. when the difference between two pixel is greater than this threshold, the pixels are not diffused. This causes diffusion to avoid sharp edges. If the GradientMagnitudeThreshold is set, then gradient magnitude is used for comparison instead of pixel differences.
|
virtual |
Set/Get the difference threshold that stops diffusion. when the difference between two pixel is greater than this threshold, the pixels are not diffused. This causes diffusion to avoid sharp edges. If the GradientMagnitudeThreshold is set, then gradient magnitude is used for comparison instead of pixel differences.
|
virtual |
Set/Get the difference factor
|
virtual |
Set/Get the difference factor
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Choose neighbors to diffuse (6 faces, 12 edges, 8 corners).
|
virtual |
Switch between gradient magnitude threshold and pixel gradient threshold.
|
virtual |
Switch between gradient magnitude threshold and pixel gradient threshold.
|
virtual |
Switch between gradient magnitude threshold and pixel gradient threshold.
|
virtual |
Switch between gradient magnitude threshold and pixel gradient threshold.
|
protected |
|
protected |
|
protected |
Definition at line 109 of file vtkImageAnisotropicDiffusion3D.h.
|
protected |
Definition at line 112 of file vtkImageAnisotropicDiffusion3D.h.
|
protected |
Definition at line 113 of file vtkImageAnisotropicDiffusion3D.h.
|
protected |
Definition at line 115 of file vtkImageAnisotropicDiffusion3D.h.
|
protected |
Definition at line 116 of file vtkImageAnisotropicDiffusion3D.h.
|
protected |
Definition at line 117 of file vtkImageAnisotropicDiffusion3D.h.
|
protected |
Definition at line 119 of file vtkImageAnisotropicDiffusion3D.h.