B = nlfilter(A,'indexed',___)
processes A as an indexed image, padding with
0s if the class of A is
uint8, uint16, or
logical, and padding with 1s
otherwise.
Note
nlfilter can take a long time to process large images.
In some cases, the colfilt function can perform the same
operation much faster.
This example shows how to apply a median filter to an image using nlfilter. This example produces the same result as calling medfilt2 with a 3-by-3 neighborhood.
Read an image into the workspace.
A = imread('cameraman.tif');
Convert the image to double.
A = im2double(A);
Create the function you want to apply to the image—a median filter.
fun = @(x) median(x(:));
Apply the filter to the image.
B = nlfilter(A,[3 3],fun);
Display the original image and the filtered image, side-by-side.
montage({A,B})
title('Original Image (Left) and Median Filtered Image (Right)')
Image to be filtered, specified as a numeric array of any class supported
by fun. When A is grayscale, it can be
any numeric type or logical. When A is
indexed, it can be logical, uint8,
uint16, single, or
double.
[m n] — Block size 2-element vector of positive integers
Block size, specified as a 2-element vector of positive integers.
m is the number of rows and n is
the number of columns in the block.
Example: B = nlfilter(A,[3 3],fun);
Data Types: single | double | logical
fun — Function handle handle
Function handle specified as a handle. The function must accept an
m-by-n matrix as input and return
a scalar result.
c = fun(x)
c is the output value for the center pixel in the
m-by-n block x.
nlfilter calls fun for each pixel
in A. nlfilter zero-pads the
m-by-n block at the edges, if
necessary.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.