MATLAB Function Reference |
Syntax
C = conv2(A,B)
C = conv2(hcol,hrow,A)
C = conv2(...,'shape
')
Description
C = conv2(A,B)
計算矩陣 A
和 B
的二維卷積(convolution)如果其中一個矩陣是一個二維 FIR filter,則另外一個矩陣會被過濾成二維矩陣。
C
每一維度的大小與輸入矩陣對應維度的和減一相等。就是說,假設 A
的大小是 [ma,na]
而 B
是 [mb,nb]
,則 C
的大小是 [ma+mb-1,na+nb-1]
。
C = conv2(hcol,hrow,A)
分別對 A
的兩個維度做卷積,以 hcol
對直行做卷積,hrow
對橫列做卷積。hcol
和 hrow
必須都是向量。
C = conv2(...,'
以 shape
')
shape
參數的定義,傳回二維卷積(convolution)的一部份。定義如下:
full |
傳回全部的二維卷積(預設值)。 |
same |
傳回卷積中心大小和 A 一樣的部份。 |
valid |
只傳回計算卷積時沒有做補零動作的邊。用這個選項時,當 size(A) > size(B) 的情形下,C 的大小是 [ma-mb+1,na-nb+1] 。 |
Examples
在影像處理方面,Sobel edge finding 的動作是一個輸入陣列和一個特殊矩陣的二維卷積
s = [1 2 1; 0 0 0; -1 -2 -1];
A = zeros(10); A(3:7,3:7) = ones(5); H = conv2(A,s); mesh(H)
這些指令顯示 A
的第一個垂直邊,接著是水平和垂直的邊同時顯示。
V = conv2(A,s'); mesh(V) mesh(sqrt(H.^2+V.^2))
See Also
xcorr2
in the Signal Processing Toolbox
conv | convhull |