2017-10-16 11 views
-1

私は私の2次元コンボリューションの出力は次の図インデックス問題(入力フィルタ)

ソースに合わせてあるように、私のカーネル/フィルタの中心を宣言するための方法を探しています: http://machinelearninguru.com/computer_vision/basics/convolution/image_convolution_1.html enter image description here

IはCONV2(入力フィルタ)に見えたが、この作り付け関数はM×Nのフィルタのために、その中心は常にフィルターマトリックスに(M、N)位置に配置されていると仮定していることを見出しました。私はhttps://www.mathworks.com/help/vision/ref/2dconvolution.html に次の画像を見ました。この場合、二重和の結果は、出力行列に(1,1)、(2,2)に位置する代わりにする

enter image description here

MATLABバージョン:MatlabR2014a

答えて

0

もしI

conv2(input,filter,'same') 
+0

はい... M、N(フィルタ行列の次元)が奇数で、 'フィルタ'の最大値が真中にある場合はうまくいくようです。例えばM = N = 3かつmax(フィルタ)が(2,2)である場合に、しかし、max(フィルタ)が中間にない場合はどうなりますか? 3x3の例では、maxを(2,1)にする。その場合、「同じ」ハンドルは機能しません。出力インデックスがフィルタマトリックスの最大要素の位置によって決まることを確実にする方法はありますか?私はフィルタマトリックスの最大要素を中心に持ってきて、次にconv2(x、newfilter、 'same')を使うために、ゼロパディングフィルタ行列でnewfilterを生成することを考えました... – NAASI

0

あなたはの'full'形状引数を使用することができます:あなたはCONV2に形状ハンドルを使用する必要が正しくあなたを理解出力にインデックスを付けて、適切に整列されたスライスを選択します。