Signal Processing Toolbox | ![]() ![]() |
表示
C=
conv2(A,
B) C=
conv2(A,B,'shape
')
詳細
C
は、行列 =
conv2(A,B)
A
と行列B
の2次元コンボリューションを計算します。これらの行列の一方が2次元FIRフィルタを記述している場合には、もう一方の行列が2次元フィルタ処理されます。
出力行列C
の各次元は、入力行列の対応する次元の和から1を引いた大きさになります。[ma,na] = size(A)
かつ[mb,nb] = size(B)
の場合、
size(C) = [ma+mb-1,na+nb-1]
となります。
C
は、2次元コンボリューションの中から =
conv2(A,B,'shape
')
shape
で設定した部分を取り出します。ここで、
full
:2次元コンボリューションのすべての結果を出力します(デフォルト)。 same
:コンボリューションの結果から中心部をA
と同じ大きさになるように出力します。 valid
:エッジにゼロを加えないで、コンボリューション計算を行なった部分を取り除いて、出力されます。このオプションを使用すると、size(A)
> size(B)
の場合、size(C) = [ma-mb+1,na-nb+1]
となります。 conv2
は、size(A)
> size(B)
のとき、実行速度が速くなります。
関数conv2
は、MATLABの基本モジュールに含まれています。
例題
イメージ処理において、Sobelエッジ検出演算は入力配列と特別に設定した行列Sとの2次元コンボリューションです。
s =
[1 2 1; 0 0 0; -1 -2 -1];
任意のイメージIが与えられると、つぎのステートメントにより水平エッジを抽出します。
h =
conv2(I,s);
つぎのステートメントにより、まず垂直エッジを抽出し、つぎに水平エッジと垂直エッジを合成します。
v=
conv2(I,s'); v2=
(sqrt(h.^2 + v.^2))
参考
|
コンボリューションおよび多項式乗算 |
|
N次元コンボリューション(MATLAB Function Referenceを参照) |
|
デコンボリューションおよび多項式除算 |
|
2次元ディジタルフィルタリング |
|
相互相関関数の推定 |
|
2次元相互相関 |
![]() | conv | convmtx | ![]() |