Image Processing Toolbox    
medfilt2

Perform two-dimensional median filtering

Syntax

Description

Median filtering is a nonlinear operation often used in image processing to reduce "salt and pepper" noise. Median filtering is more effective than convolution when the goal is to simultaneously reduce noise and preserve edges.

B = medfilt2(A,[m n]) performs median filtering of the matrix A in two dimensions. Each output pixel contains the median value in the m-by-n neighborhood around the corresponding pixel in the input image. medfilt2 pads the image with zeros on the edges, so the median values for the points within [m n]/2 of the edges may appear distorted.

B = medfilt2(A) performs median filtering of the matrix A using the default 3-by-3 neighborhood.

B = medfilt2(A,'indexed',...) processes A as an indexed image, padding with zeros if the class of A is uint8, or ones if the class of A is double.

Class Support

The input image A can be of class uint8, uint16, or double (unless the 'indexed' syntax is used, in which case A cannot be of class uint16). The output image B is of the same class as A.

Remarks

If the input image A is of class uint8, all of the output values are returned as uint8 integers. If the number of pixels in the neighborhood (i.e., m*n) is even, some of the median values may not be integers. In these cases, the fractional parts are discarded.

For example, suppose you call medfilt2 using 2-by-2 neighborhoods, and the input image is a uint8 array that includes this neighborhood.

medfilt2 returns an output value of 4 for this neighborhood, although the true median is 4.5.

Example

This example adds salt and pepper noise to an image, then restores the image using medfilt2.

Algorithm

medfilt2 uses ordfilt2 to perform the filtering.

See Also

filter2, ordfilt2, wiener2

Reference

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


 mean2 montage