Main Content

2-D median filtering

Median filtering is a nonlinear operation often used in image processing to reduce "salt and pepper" noise. A median filter is more effective than convolution when the goal is to simultaneously reduce noise and preserve edges. For information about performance considerations, see

`ordfilt2`

.If the input image

`I`

is of an integer class, then all the output values are returned as integers. If the number of pixels in the neighborhood (`m*n`

) is even, then some of the median values might not be integers. In these cases, the fractional parts are discarded. Logical input is treated similarly. For example, the true median for the following 2-by-2 neighborhood in a`uint8`

array is 4.5, but`medfilt2`

discards the fractional part and returns 4.1 5 4 8

If you specify

`padopt`

as`'zeros'`

or`'indexed'`

, then the padding can skew the median near the image boundary. Pixels within one-half the width of the neighborhood (

) of the edges can appear distorted.`[m n]`

/2

On the CPU, `medfilt2`

uses `ordfilt2`

to perform the filtering.

[1] Lim, Jae S., *Two-Dimensional
Signal and Image Processing*, Englewood Cliffs, NJ, Prentice
Hall, 1990, pp. 469-476.