| 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 | ![]() |