Signal Processing Toolbox | Help Desk |
conv2
Two-dimensional convolution.
C = conv2(A,
B) C = conv2(A,B,'shape
')
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)
.
In image processing, the Sobel edge-finding operation is a two-dimensional convolution of an input array with the special matrix
s = [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))