File Exchange

image thumbnail

Hybrid median filtering

version (2.84 KB) by Damien Garcia
HMF performs hybrid median filtering of a 2-D array or an RGB image


Updated 25 Feb 2010

View License

B = HMF(A,N) performs hybrid median filtering of the matrix A using a NxN box. Hybrid median filtering preserves edges better than a NxN square kernel-based median filter because data from different spatial directions are ranked separately. Three median values are calculated in the NxN box: MR is the median of horizontal and vertical R pixels, and MD is the median of diagonal D pixels. The filtered value is the median of the two median values and the central pixel C: median([MR,MD,C]).

B = HMF(A) uses N = 5 (default value).

A can be a 2-D array or an RGB image. If A is an RGB image, hybrid median filtering is performed in the HSV color space.

1) N must be odd. If N is even then N is incremented by 1.
2) The Image Processing Toolbox is required.
3) If the function NANMEDIAN exists (Statistics Toolbox), NaNs are treated as missing values and are ignored.

% original image
[I,map] = imread('trees.tif');
I = ind2rgb(I,map);
% noisy image
J = imnoise(I,'salt & pepper',0.02);
% hybrid median filtering
K = hmf(J,9);
% figures

Other examples are given in:

Cite As

Damien Garcia (2020). Hybrid median filtering (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)




A very straight forward and easy to use file. I used this on a disparity image from a pair of stereo cameras with clean results.


Test for RGB has been improved. RGB output and input have same class.

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

Inspired: hmf1(A,n)