3

5x5 の行列があるとしましょう:

arr = np.arange(25).reshape((5,5))

array([[ 0,  1,  2,  3,  4],
   [ 5,  6,  7,  8,  9],
   [10, 11, 12, 13, 14],
   [15, 16, 17, 18, 19],
   [20, 21, 22, 23, 24]])

そして、それを平均して3x3マトリックスを作成したいと思います。

ここに画像の説明を入力

これは、青のピクセルが含まれる黒のピクセルから作成され、その数が青のピクセル内の領域で重み付けされるような方法で行う必要があります。

つまり、2 番目の黒のピクセルの値 (値 1) の 3/5(?) を最初の青のピクセルに追加し、2/5 を 2 番目の青のピクセルに追加する必要があります。

ありがとう

4

2 に答える 2

2

あなたが本当に欲しいものを知っているようには思えません。しかし、左上のコーンバーについて説明したことは、 を使用して配列全体に展開できますがscipy.signal.correlate、4x4 の出力が生成され、数学が間違っています。

>>> import scipy.signal
>>> scipy.signal.correlate(np.arange(25).reshape(5, 5),
...                        [[1, 3/5], [3/5, 9/25]], 'valid') / 4
array([[  1.44,   2.08,   2.72,   3.36],
       [  4.64,   5.28,   5.92,   6.56],
       [  7.84,   8.48,   9.12,   9.76],
       [ 11.04,  11.68,  12.32,  12.96]])
于 2013-11-07T17:34:01.273 に答える