You are here : matlabImage Processingfspecial

fspecial() - Image Processing

h = fspecial(type) creates
a two-dimensional filter h of the specified type. fspecial returns h as
a correlation kernel, which is the appropriate form to use with imfilter. type is
a string having one of these values.ValueDescription
averageAveraging filter
diskCircular averaging filter (pillbox) 
gaussianGaussian lowpass filter
laplacianApproximates the two-dimensional Laplacian operator
logLaplacian of Gaussian filter
motionApproximates the linear motion of a camera
prewittPrewitt horizontal edge-emphasizing filter
sobelSobel horizontal edge-emphasizing filter
h = fspecial(type, parameters) accepts
the filter specified by type plus additional modifying parameters particular
to the type of filter chosen. If you omit these arguments, fspecial uses
default values for the parameters. The following list shows the syntax for each filter type. Where
applicable, additional parameters are also shown.h = fspecial('average', hsize) returns
an averaging filter h of size hsize.
The argument hsize can be a vector specifying the
number of rows and columns in h, or it can be a
scalar, in which case h is a square matrix. The
default value for hsize is [3 3].h = fspecial('disk', radius) returns
a circular averaging filter (pillbox) within the square matrix of
size 2*radius+1. The default radius is
5.h = fspecial('gaussian', hsize,
sigma) returns a rotationally symmetric Gaussian lowpass
filter of size hsize with standard deviation sigma (positive). hsize can
be a vector specifying the number of rows and columns in h,
or it can be a scalar, in which case h is a square
matrix. The default value for hsize is [3
3]; the default value for sigma is 0.5.
Not recommended. Use imgaussfilt or imgaussfilt3 instead.h = fspecial('laplacian', alpha) returns
a 3-by-3 filter approximating the shape of the two-dimensional Laplacian
operator. The parameter alpha controls the shape
of the Laplacian and must be in the range 0.0 to 1.0. The default
value for alpha is 0.2.h = fspecial('log', hsize, sigma) returns
a rotationally symmetric Laplacian of Gaussian filter of size hsize with
standard deviation sigma (positive). hsize can
be a vector specifying the number of rows and columns in h,
or it can be a scalar, in which case h is a square
matrix. The default value for hsize is [5
5] and 0.5 for sigma.h = fspecial('motion', len,
theta) returns a filter to approximate, once convolved with
an image, the linear motion of a camera by len pixels,
with an angle of theta degrees in a counterclockwise
direction. The filter becomes a vector for horizontal and vertical
motions. The default len is 9 and the default theta is
0, which corresponds to a horizontal motion of nine pixels.To compute the filter coefficients, h, for 'motion':Construct an ideal line segment with the desired length
and angle, centered at the center coefficient of h.For each coefficient location (i,j),
compute the nearest distance between that location and the ideal line
segment.h = max(1 - nearest_distance, 0); Normalize h:h = h/(sum(h(:)))h = fspecial('prewitt') returns
the 3-by-3 filter h (shown below) that emphasizes
horizontal edges by approximating a vertical gradient. If you need
to emphasize vertical edges, transpose the filter h'.[ 1  1  1 
  0  0  0 
 -1 -1 -1 ] To find vertical edges, or for x-derivatives,
use h'.h = fspecial('sobel') returns
a 3-by-3 filter h (shown below) that emphasizes
horizontal edges using the smoothing effect by approximating a vertical
gradient. If you need to emphasize vertical edges, transpose the filter h'. [ 1  2  1 
  0  0  0 
 -1 -2 -1 ]Code Generation support:
Yes.MATLAB Function Block support:
Yes.


Syntax

h = fspecial(type)h = fspecial(type, parameters)


Example

[ 1  1  1 
  0  0  0 
 -1 -1 -1 ]


Output / Return Value


Limitations


Alternatives / See Also


Reference