11.21. ITK Curvature Flow Image Filter
Edge-preserving denoising that smooths an image by moving its intensity contours according to their curvature.
Group (Subgroup)
ITKCurvatureFlow (CurvatureFlow)
Description
Curvature flow is an edge-preserving smoothing method. The grayscale image is treated as a stack of iso-intensity contours (lines of constant brightness, like the contour lines on a topographic map). Each contour is then moved at a speed proportional to its local curvature: tightly curved, wiggly parts of a contour (typically noise) move quickly and flatten out, while straight, low-curvature parts (typically real boundaries) barely move. The result is that small noise is smoothed away while sharp edges are preserved.
The evolution is applied over a number of small time steps. Note that applying too many iterations eventually shrinks every contour to nothing and erases all detail, so the iteration count should be tuned to the image.
A faster, scale-selective variant is available in ITK Min Max Curvature Flow Image Filter. The output pixels are of a floating-point type.
Parameter Guidance
Number Of Iterations — how many time steps to apply. More iterations smooth more strongly; too many erase real features.
Time Step — the size of each step (dimensionless). It must be small enough for numerical stability (each contour should move less than one grid cell per step). As a practical starting point use values around 0.125 for 2D and 0.0625 for 3D images and reduce if the result looks unstable. (Default 0.05.)
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.
Reference
“Level Set Methods and Fast Marching Methods”, J.A. Sethian, Cambridge Press, Chapter 16, Second edition, 1999.
See Also
Input Parameter(s)
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
|---|---|---|---|
Time Step |
Scalar Value |
Float64 |
The timestep between iteration updates |
Number Of Iterations |
Scalar Value |
UInt32 |
The number of update iterations |
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: int8, uint8, int16, uint16, int32, uint32, int64, uint64, 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.