私はMatlabで遊んでいて、さまざまなことを試し、組み込み関数を使用せずに物事を達成する方法を見つけています。どうやらMatlab(グーグルと彼らのウェブサイトによると)は「conv2」関数のソースコードをリリースしていません。。
「conv2(h1、h2、A)」の代替関数、またはMatlabsを使用せずに独自のバージョンをコーディングする方法はありますかconv2
。
Matlabのhelp
オプション/キーワードは本当に役に立ちませんでした
- - 編集 - -
これは、の代替となるコードですconv2(A,B)
。しかし、私はを扱う同様の何かを探していますconv2(h1,h2,A)
function B = convolve(A, k);
[r c] = size(A);
[m n] = size(k);
h = rot90(k, 2);
center = floor((size(h)+1)/2);
left = center(2) - 1;
right = n - center(2);
top = center(1) - 1;
bottom = m - center(1);
Rep = zeros(r + top + bottom, c + left + right);
for x = 1 + top : r + top
for y = 1 + left : c + left
Rep(x,y) = A(x - top, y - left);
end
end
B = zeros(r , c);
for x = 1 : r
for y = 1 : c
for i = 1 : m
for j = 1 : n
q = x - 1;
w = y -1;
B(x, y) = B(x, y) + (Rep(i + q, j + w) * h(i, j));
end
end
end
end