File Exchange

image thumbnail

Bitonic filter

version (654 KB) by Graham Treece
A filter for preserving any bitonic information in signals or images.


Updated 16 Aug 2018

View License

Note that,for images, this filter has been superceded by the Structurally Varying Bitonic Filter, also available on file exchange.

This is a filter for removing noise in signals and images whilst preserving edges and other bitonic data, ie. anything with either one local maximum or minimum within the range of the filter. It has better edge-preserving properties than a median filter, whilst also removing noise similarly to a Gaussian filter. It has wide applicability and very few parameters, with no need for training or prior knowledge of the noise variance, and is hence particularly suited to situations where the noise is varying.
See the bitonic_demo script for an example.

Also included is RANKFILT2, which is a faster replacement for ORDFILT2 when the data is of type uint8.

More information is available from a technical report at:

Cite As

Graham Treece (2020). Bitonic filter (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)


cool stuff, thank you!
However, compiling the rankfilt2 function is a factor of 5 SLOWER, than just using rankfilt2.m or even ordfilt, they're both about the same speed for me. So I'd be reall interested to find my mistake here. I generate the mex like you suggest (mex rankfilt2.cpp). This results in 500% the calculation time though.
I use an Intel 9900k running Matlab 2018b on Windows 10.

Phong Vo

Thank you for the implementation. Really good paper and code too.

ayush dogra

biotonic filter is edge preserving filters, author has really worked hard to implement this code ,,I wish of luck , and I suggest other students and researchers to see at this filter

ayush dogra

biotonic filter is good image filtering filter , i suggest authors o try his


Change to description.

Minor correction to rankfilt2.cpp which makes filtering more efficient in some cases.

Added link to technical report.

Updated the description to include rankfilt2.

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