MATLAB Function Reference | ![]() ![]() |
表示
C = conv2(A,B)
C = conv2(hcol,hrow,A)
C = conv2(...,'shape
')
詳細
C = conv2(A,B)
は、行列 A
と B
の 2次元のコンボリューションを計算します。これらの内の 1 つの行列が 2次元 FIR フィルタを記述しているならば、もう一方の行列は、2次元でフィルタリングされます。
各次元でのC
のサイズは、入力行列の対応する次元の和から 1 を引いたものと等しくなります。A
のサイズが [ma,na]
で、B
のサイズが[mb,nb]
の場合、C
のサイズは [ma+mb-1,na+nb-1]
です。
C = conv2(hcol,hrow,A)
は、hcol
を使って列方向に、hrow
を使って行方向に、別々に A
のコンボリューションを行います。hcol
と hrow
は、ベクトルです。
C = conv2(...,'
は、以下の shape
')
shape
パラメータで指定されるように 2次元コンボリューションのサブセクションを出力します。
full |
完全な 2次元コンボリューションを出力します(デフォルト)。 |
same |
A と同じサイズで中央部分のコンボリューションを出力します。 |
valid |
エッジにゼロを加えずに計算されたコンボリューションの部分のみを出力します。このオプションを使うと、size(A) > size(B) のとき、C のサイズは [ma- mb+1,na-nb+1] です。 |
例題
イメージ処理では、Sobel エッジを求める演算は、つぎの特殊行列を使った入力配列の 2 次元コンボリューションです。
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))
参考
Signal Processing Toolbox の xcorr2
![]() | conv | convhull | ![]() |