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 a technical report: