ここで見つかったPythonのN次元配列の畳み込みを行った後 SO 私は今、私の頭を包むことのできない問題に直面しています。 scipy.ndimage
から提供される畳み込みは、Matlabのconvn
のような畳み込みの '有効な'部分を選択することを許可しないので、有効な部分をスライスする必要があります。 [2×2]のカーネルサイズで 畳み込み後にスライスすると、-1インデックスが機能しない
"valid = [slice(kernel.shape[0]//2, -kernel.shape[0]//2), slice(kernel.shape[1]//2, -kernel.shape[1]//2)]"
、Iわからない私は、カーネルと画像[24×24]の畳み込みのための有効なスライスを取得しない理由として。
z = convolve(image,kernel)[valid]
私は[23x23]画像を期待していましたが、[22x22]画像が表示されます。 こうしてスライスの値をチェックしたところ、ここでは-1が動作しないようです。
は
convolve(image,kernel)[1:-1,1:-1] ---> Gives 22x22
convolve(image,kernel)[1:,1:] ---> Gives 23x23
マニュアルのスライスを行うので、質問が来るどのように...である-1単純な配列の最後の項目を与えるが、スライスの私の場合には、それはそれを無視? Pythonで
a= np.array([100,101,102])
a[-1]
102
説明のためのブラボー:) – Wajih