File Exchange

image thumbnail

Hybrid median filtering

version 1.1 (2.84 KB) by

HMF performs hybrid median filtering of a 2-D array or an RGB image

16 Downloads

Updated

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.

Notes
------
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.

Example
--------
% 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
subplot(121),imshow(J),subplot(122),imshow(K)

------
Other examples are given in:
http://www.biomecardio.com/matlab/hmf.html
-----

Comments and Ratings (2)

NCC A.

NCC A. (view profile)

Michael

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.

Updates

1.1

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

MATLAB Release
MATLAB 7.5 (R2007b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video