Locally Adaptive Bitonic X Filter

A competitive morphology-based filter for removal of image noise.
Updated Mon, 31 Oct 2022 10:06:11 +0000

View License

This filter combines locally adaptive threshold-based morphological operations and an adaptive anisotropic Gaussian. It also includes specific options for reducing noise in images with real sensor noise instead of additive Gaussian noise. On such images it is competitive with all but the learning-based approaches, and only when they are specifically trained on data sets from the same source as the test images.
The filter only has two main parameters - a threshold and a filter length - and functions are included to estimate both of these from the input image. It neither requires any training nor prior knowledge.
Also included are very efficient functions for performing locally adaptive opening and closing, the adaptive anisotropic Gaussian, associated functions for calculating image anisotropy and orientation from the structure tensor, and functions for inverting and applying standard RGB gamma curves.
See the mxbitonic_demo script for examples.
More information is available from the following paper and a technical report:
G. M. Treece. Real Image Denoising with a Locally-Adaptive Bitonic Filter. IEEE Transactions on Image Processing, Vol. 31, pp. 3151-3165, April 2022.
G. M. Treece. Real image denoising with a locally-adaptive bitonic filter. Technical report ENG-TR.006, Cambridge University Department of Engineering, September 2021.

Cite As

Graham Treece (2024). Locally Adaptive Bitonic X Filter (https://www.mathworks.com/matlabcentral/fileexchange/98899-locally-adaptive-bitonic-x-filter), MATLAB Central File Exchange. Retrieved .

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

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Added warning to compile rankopen2 if necessary. Also updated citation.


Can now also operate on four channel planar RAW image data, such as would be created by rawread() followed by raw2planar().


Removed dependency on the Signal Processing Toolbox


Now includes reference to technical report