11.20. ITK Curvature Anisotropic Diffusion Image Filter

Edge-preserving smoothing that blurs within regions but not across edges, using the modified curvature diffusion equation (MCDE).

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 modified curvature diffusion equation (MCDE), a variant that tends to preserve fine, high-curvature detail better than the plain gradient-based formulation (see ITK Gradient Anisotropic Diffusion Image Filter for the classic Perona-Malik version).

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; start small and increase as needed.

  • Time Step — the size of each diffusion step (dimensionless). It must stay below a stability limit that depends on image dimensionality: 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. The default (0.0625) is the maximum theoretically stable value for 3D.

  • Conductance Parameter — controls how strongly edges are preserved. Lower values preserve features more strongly (less diffusion across high-gradient regions); higher values let the filter 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

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.