File Exchange

image thumbnail

Structurally Varying Bitonic Filter

version 1.0.3 (1.91 MB) by Graham Treece
A high performance morphology-based noise-reduction filter for images.


Updated 04 Apr 2019

View License

This is a filter combining robust structurally varying (adaptive) morphological operations and an adaptive anisotropic Gaussian, with high noise reduction performance, particularly for very high noise levels. It is founded on preserving signal bitonicity, and since this concept only involves the order of values, not the image levels, it is naturally edge-preserving.

Like the fixed bitonic filter, the structurally varying bitonic filter has very few parameters and does not require any training nor prior knowledge.

Also included are very efficient functions for performing structurally varying opening and closing, the adaptive anisotropic Gaussian, and associated functions for calculating appropriate morphological masks and image anisotropy and orientation from the structure tensor.

The bitonic filter is also embedded in a multi-resolution framework for even better results. See the svbitonic_demo script for examples.

More information is available from a technical report:

G. M. Treece. Morphology-based noise reduction: structural variation and thresholding in the Bitonic Filter. Technical report CUED/F-INFENG/TR705, Cambridge University Department of Engineering, August 2018.

Cite As

Graham Treece (2020). Structurally Varying Bitonic Filter (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (3)

yajun li

When I type "mex anisotropic2_mex.cpp" there occurs an error related to "mex".

Chong WU

Really good work!!!



Updates to centile calculations and anisotropy noise floor


Minor improvement to performance when using data thresholds


Added reference to technical report

MATLAB Release Compatibility
Created with R2018b
Compatible with any release
Platform Compatibility
Windows macOS Linux