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.
Graham Treece (2019). Structurally Varying Bitonic Filter (https://www.mathworks.com/matlabcentral/fileexchange/68541-structurally-varying-bitonic-filter), MATLAB Central File Exchange. Retrieved .
Updates to centile calculations and anisotropy noise floor
Minor improvement to performance when using data thresholds
Added reference to technical report
Create scripts with code, output, and formatted text in a single executable document.