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