Image Processing Toolbox User's Guide |
Perform two-dimensional order-statistic filtering
Syntax
Description
B = ordfilt2(A,order,domain)
replaces each element in A
by the order
th element in the sorted set of neighbors specified by the nonzero elements in domain
.
B = ordfilt2(A,order,domain,S)
, where S
is the same size as domain
, uses the values of S
corresponding to the nonzero values of domain
as additive offsets.
B = ordfilt2(...,padopt)
controls how the matrix boundaries are padded. Set padopt
to 'zeros'
(the default) or 'symmetric'
. If padopt
is 'zeros'
, A
is padded with 0's at the boundaries. If padopt
is 'symmetric'
, A
is symmetrically extended at the boundaries.
Class Support
The class of A
can be logical
, uint8
, uint16
, or double
. The class of B
is the same as the class of A
, unless the additive offset form of ordfilt2
is used, in which case the class of B
is double
.
Remarks
domain
is equivalent to the structuring element used for binary image operations. It is a matrix containing only 1's and 0's; the 1's define the neighborhood for the filtering operation.
For example, B
=
ordfilt2(A,5,ones(3,3))
implements a 3-by-3 median
filter; B
=
ordfilt2(A,1,ones(3,3))
implements a 3-by-3 minimum filter;
and B
=
ordfilt2(A,9,ones(3,3))
implements a 3-by-3 maximum filter. B
=
ordfilt2(A,1,[0 1 0; 1 0 1; 0 1 0])
replaces each element in A
by the minimum of its north, east, south, and west neighbors.
The syntax that includes S
(the matrix of additive offsets) can be used to implement grayscale morphological operations, including grayscale dilation and erosion.
Performance Considerations
When working with large domain matrices that do not contain any zero-valued elements, ordfilt2
can achieve higher performance if A
is in an integer data format (uint8
, int8
, uint16
, int16
). The gain in speed is larger for uint8
and int8
than for the 16-bit data types. For 8-bit data formats, the domain matrix must contain seven or more rows. For 16-bit data formats, the domain matrix must contain three or more rows and 520 or more elements.
Example
This examples uses a maximum filter with a [5 5]
neighborhood. This is equivalent to imdilate(image,strel('square',5))
.
See Also
Reference
[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume I, Addison-Wesley, 1992.
[2] Huang, T.S., G.J.Yang, and G.Y.Tang. "A fast two-dimensional median filtering algorithm.", IEEE transactions on Acoustics, Speech and Signal Processing, Vol ASSP 27, No. 1, February 1979.
ntsc2rgb | otf2psf |
© 1994-2005 The MathWorks, Inc.