11.29. ITK Gradient Anisotropic Diffusion Image Filter
Edge-preserving smoothing that blurs within regions but not across edges, using the classic Perona-Malik gradient-magnitude equation.
Group (Subgroup)
ITKAnisotropicSmoothing (AnisotropicSmoothing)
Description
Anisotropic diffusion is an edge-preserving smoothing technique. Ordinary (Gaussian) blurring smooths everywhere equally and washes out edges. Anisotropic diffusion instead smooths strongly inside uniform regions but weakly across boundaries, so noise is reduced while real edges stay sharp. The image is evolved over a number of small time steps, as if heat were diffusing through it but slowed down wherever the image changes rapidly.
This filter uses the classic Perona-Malik formulation, in which the diffusion at each pixel is throttled by the local gradient magnitude: where the gradient is high (an edge), diffusion is suppressed; where the image is flat, diffusion proceeds freely. The closely related ITK Curvature Anisotropic Diffusion Image Filter preserves fine detail somewhat better.
The input and output must be a scalar image with a floating-point pixel type (float or double).
Parameter Guidance
Number Of Iterations — how many diffusion time steps to apply. More iterations produce a more strongly smoothed result. The right number depends on the image and the amount of noise.
Time Step — the size of each diffusion step (dimensionless). It must stay below a stability limit: for unit pixel spacing, stable values are below 0.125 for 2D and below 0.0625 for 3D images. The filter clamps an unstable value and issues a run-time warning. (Default 0.125.)
Conductance Parameter — controls how strongly edges are preserved. Lower values preserve features more strongly; higher values smooth across features more readily. Typical values range from 0.5 to 2.0; the best value depends on the data and the iteration count.
Conductance Scaling Update Interval — how often (in iterations) the internal conductance term is recomputed. The default of 1 updates it every iteration; larger values update less frequently and run slightly faster at some cost in accuracy.
Required Input Sources
Operates on any scalar (floating-point) image — typically from Read Image, Read Images [3D Stack], or the output of a prior ITK image filter.
See Also
Input Parameter(s)
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
|---|---|---|---|
Time Step |
Scalar Value |
Float64 |
The time step to be used for each iteration. |
Conductance Parameter |
Scalar Value |
Float64 |
The conductance parameter controls the sensitivity of the conductance term in the basic anisotropic diffusion equation |
Conductance Scaling Update Interval |
Scalar Value |
UInt32 |
The interval between conductance updates. |
Number Of Iterations |
Scalar Value |
UInt32 |
Specifies the number of iterations (time-step updates) that the solver will perform to produce a solution image |
Input Cell Data
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
|---|---|---|---|
Image Geometry |
Geometry Selection |
Image |
Select the Image Geometry Group from the DataStructure. |
Input Cell Data |
Array Selection |
Allowed Types: float32, float64 |
The image data that will be processed by this filter. |
Output Cell Data
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
|---|---|---|---|
Output Image Data Array |
DataObjectName |
The result of the processing will be stored in this Data Array. |
Example Pipelines
License & Copyright
Please see the description file distributed with this Plugin
DREAM3D-NX Help
If you need help, need to file a bug report or want to request a new feature, please head over to the DREAM3DNX-Issues GitHub site where the community of DREAM3D-NX users can help answer your questions.