| Signal Processing Toolbox | Search  Help Desk |
| conv2 | Examples See Also |
Syntax
C = conv2(A,B) C = conv2(A,B,'shape')
Description
C = conv2(A,B)
computes the two-dimensional convolution of matrices A and B. If one of these matrices describes a two-dimensional FIR filter, the other matrix is filtered in two dimensions.
Each dimension of the output matrix C is equal in size to the sum of the corresponding dimensions of the input matrices minus 1. For [ma,na] = size(A) and [mb,nb] = size(B), then
size(C) = [ma+mb-1,na+nb-1]
C = conv2(A,B,'shape')
returns a subsection of the two-dimensional convolution with size specified by shape, where:
full returns the full two-dimensional convolution (default)
same returns the central part of the convolution that is the same size as A
valid returns only those parts of the convolution that are computed without the zero-padded edges. Using this option, size(C) = [ma-mb+1,na-nb+1] when size(A) > size(B)
conv2 executes most quickly when size(A) > size(B).
The conv2 function is part of the standard MATLAB language.
Examples
In image processing, the Sobel edge-finding operation is a two-dimensional convolution of an input array with the special matrixs = [1 2 1; 0 0 0; -1 -2 -1];Given any image, the following line extracts the horizontal edges:
h = conv2(I,s);The lines below extract first the vertical edges, then both horizontal and vertical edges combined:
v = conv2(I,s'); v2 = (sqrt(h.^2 + v.^2))
See Also
conv |
Convolution and polynomial multiplication. |
convn |
N-dimensional convolution (see the online MATLAB Function Reference). |
deconv |
Deconvolution and polynomial division. |
filter2 |
Two-dimensional digital filtering. |
xcorr |
Cross-correlation function estimate. |
xcorr2 |
Two-dimensional cross-correlation. |