2-D Convolution
2 つの入力行列の 2 次元離散畳み込みの計算

ライブラリ:
Computer Vision Toolbox /
Filtering
説明
2-D Convolution ブロックは 2 つの入力行列の 2 次元畳み込みを計算します。行列 A の次元が (Ma, Na) で行列 B の次元が (Mb, Nb) と仮定します。ブロックが完全な出力サイズを計算すると、2 次元離散畳み込みの方程式は次のようになります。
ここで、 および です。
例
端子
入力
入力行列。強度値の行列または RGB ビデオ ストリームの 1 つの平面を表す行列として指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
入力行列。強度値の行列または RGB ビデオ ストリームの 1 つの平面を表す行列として指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
出力
入力行列の畳み込み。行列として返されます。
依存関係
出力の次元は [出力サイズ] パラメーターで決まります。
入力のデータ型が浮動小数点の場合、ブロックの出力も浮動小数点になります。
all(size(I1)<size(I2))
の場合、ブロックはエラーを返します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
パラメーター
[メイン] タブ
出力の次元。
次の入力次元が与えられた場合のブロックの出力を表に示します。
I1 — (Ma, Na)
I2 — (Mb, Nb)
出力サイズ | 出力 | 出力の次元 |
---|---|---|
完全 | 完全な 2 次元畳み込み | (Ma+Mb-1, Na+Nb-1). |
入力端子 I1 と同じ | 端子 [I1] での入力と同じ次元の畳み込みの中心部分 | |
有効 | どの入力の、ゼロがパディングされたエッジも含めずに計算された畳み込みの部分のみ。 | (Ma-Mb+1, Na-Nb+1) |
出力を [sqrt(sum(dot(I1p,I1p))*sum(dot(I2,I2)))]
で除算することにより、出力を正規化します。ここで、[I1p]
は、[I1] 行列の、[I2] 行列と一致する部分です。
メモ
[正規化された出力] チェック ボックスをオンにする場合、ブロック入力を固定小数点にすることはできません。
[データ型] タブ
固定小数点ブロック パラメーターの詳細については、ブロックの固定小数点属性の指定 (DSP System Toolbox)を参照してください。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
アルゴリズム
畳み込みでは、出力要素の値は、隣接する要素の重み付き和として計算されます。
たとえば、最初の入力行列はイメージを表現し、以下のように定義されると仮定します。
I1 = [17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9]
2 番目の入力行列もイメージを表現し、以下のように定義されます。
I2 = [8 1 6 3 5 7 4 9 2]
次の図は、以下の手順を使用して、出力 (1,1) 要素を計算する方法を示します。
2 番目の入力行列 [I2] を、その中心要素に対して 180 度回転させます。
[I2] の中心要素を、[I1] の (0,0) 要素の上に位置するようにスライドさせます。
回転した [I2] 行列の各要素を、その下に位置する [I1] の要素で乗算します。
手順 3 の個々の積を加算します。
出力 (1,1) 要素は、 となります。
畳み込み出力 (1,1) の計算
出力 (1,1) 要素の正規化された畳み込みは 220/sqrt(sum(dot(I1p,I1p))*sum(dot(I2,I2)))
= 0.3459 になります。ここでは、I1p = [0 0 0; 0 17 24; 0 23 5]
になります。
以下の方程式は、[出力サイズ] パラメーターの設定に応じて、ブロックが畳み込みを計算する方法を示しています。以下の場合、入力は次のように設定されます。
I1 — 次元 (4,3)
I2 — 次元 (2,2)
[出力サイズ] が
[完全]
に設定されている場合、ブロックは次の方程式を使用します。結果の行列は次のようになります。
[出力サイズ] が
[入力端子 I1 と同じ]
に設定されている場合、出力は、端子 [I1] での入力と同じ次元 (4,3) の、 の中心部分となります。ただし、4 行 3 列の行列を の正確な中心から抽出することはできないため、ブロックは 行列の上側と左側により多くの行と列を残して、次を出力します。[出力サイズ] が
[有効]
に設定されている場合、ブロックは次の方程式を使用して出力行列の行数と列数を決定します。この場合は、常に の正確な中心を抽出できます。このため、ブロックは次を出力します。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
[正規化された出力] チェック ボックスをオンにする場合、ブロック入力を固定小数点にすることはできません。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)