ドキュメンテーションヘルプ センター
最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
2 次元の畳み込み
C = conv2(A,B)
C = conv2(u,v,A)
C = conv2(___,shape)
例
C = conv2(A,B) は、行列 A と B の 2 次元の畳み込みを返します。
C
A
B
C = conv2(u,v,A) は、まず A の各列とベクトル u の畳み込みを計算してから、その結果の各行とベクトル v の畳み込みを計算します。
u
v
C = conv2(___,shape) は、shape に従って、畳み込みのサブセクションを返します。たとえば、C = conv2(A,B,'same') は畳み込みの中央部分を A と同じサイズで返します。
shape
C = conv2(A,B,'same')
すべて折りたたむ
画像処理などの用途で、畳み込みの入力を出力と直接比較する場合に便利です。関数 conv2 により、出力のサイズを制御できます。
conv2
3 行 3 列の乱数行列 A と 4 行 4 列の乱数行列 B を作成します。A と B の完全な畳み込みを計算します。これは 6 行 6 列の行列になります。
A = rand(3); B = rand(4); Cfull = conv2(A,B)
Cfull = 6×6 0.7861 1.2768 1.4581 1.0007 0.2876 0.0099 1.0024 1.8458 3.0844 2.5151 1.5196 0.2560 1.0561 1.9824 3.5790 3.9432 2.9708 0.7587 1.6790 2.0772 3.0052 3.7511 2.7593 1.5129 0.9902 1.1000 2.4492 1.6082 1.7976 1.2655 0.1215 0.1469 1.0409 0.5540 0.6941 0.6499
畳み込みの中央部分 Csame を計算します。これは Cfull の部分行列で A と同じサイズであり、Csame は Cfull(3:5,3:5) と等価です。
Csame
Cfull
Cfull(3:5,3:5)
Csame = conv2(A,B,'same')
Csame = 3×3 3.5790 3.9432 2.9708 3.0052 3.7511 2.7593 2.4492 1.6082 1.7976
ソーベル エッジ検出演算は、2 次元の畳み込みを使用して、イメージやその他の 2 次元データ内でエッジを検出します。
内部の高さが 1 と等しい 2 次元台座を作成してプロットします。
A = zeros(10); A(3:7,3:7) = ones(5); mesh(A)
A の行とベクトル u の畳み込みを計算した後に、その結果の行とベクトル v の畳み込みを計算します。この畳み込みによって、台座の水平エッジを抽出します。
u = [1 0 -1]'; v = [1 2 1]; Ch = conv2(u,v,A); mesh(Ch)
台座の垂直エッジを抽出するには、u と v の畳み込みの順序を逆にします。
Cv = conv2(v,u,A); mesh(Cv)
台座のエッジを合成したものを計算してプロットします。
figure mesh(sqrt(Ch.^2 + Cv.^2))
入力配列。ベクトルまたは行列として指定します。
データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical 複素数のサポート: あり
double
single
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
2 番目の入力配列。A と畳み込みを行うベクトルまたは行列として指定します。配列 B は A と同じサイズである必要はありません。
入力ベクトル。行ベクトルまたは列ベクトルとして指定します。u と A の各列の畳み込みが計算されます。
2 番目の入力ベクトル。行ベクトルまたは列ベクトルとして指定します。A の列と u の畳み込みを行った各行と、v の畳み込みが計算されます。
'full'
'same'
'valid'
畳み込みのサブセクション。次の値のいずれかとして指定します。
'full' — 完全な 2 次元の畳み込みを返します。
'same' — 畳み込みの中央部分を A と同じサイズで返します。
'valid' — 畳み込みのうち、ゼロが加えられたエッジを含まずに計算された部分のみを返します。
2 次元の畳み込み。ベクトルまたは行列として返されます。A と B が行列である場合、畳み込み C = conv2(A,B) のサイズは size(A)+size(B)-1 です。[m,n] = size(A)、p = length(u)、q = length(v) である場合、畳み込み C = conv2(u,v,A) は m+p-1 行 n+q-1 列です。
size(A)+size(B)-1
[m,n] = size(A)
p = length(u)
q = length(v)
m+p-1
n+q-1
conv2 の 1 つ以上の入力引数が single 型である場合、出力は single 型になります。それ以外の場合、conv2 は入力を double 型に変換して double 型を返します。
データ型: double | single
2 次元の離散変数 A と B について、次の式は A と B の畳み込みを定義します。
C(j,k)=∑p∑qA(p,q)B(j−p+1,k−q+1)
p と q は、A(p,q) と B(j-p+1,k-q+1) の添字が適正になるすべての値をとります。
使用上の注意事項および制限事項:
shape が 'full' (既定) である場合、入力 A および B は空にしてはならず、いずれか 1 つのみを tall 配列にすることができます。
shape が 'same' または 'valid' である場合は、B を tall 配列にすることはできません。
u および v を tall 配列にすることはできません。
詳細については、tall 配列を参照してください。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
入力ベクトル u および v が分散配列であってはなりません。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
conv | convn
conv
convn
この例の変更されたバージョンがシステム上にあります。代わりにこのバージョンを開きますか?
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office