用numpy求2×2块平均,详细的过程参见链接:https://www.cnblogs.com/rrttp/p/8028421.html
博主给一份简介的代码:
bayer = np.array([[1,2,3,4],[5,7,8,6]])
sz = np.shape(bayer)
b = bayer.reshape(sz[0]//2,2,sz[1]//2,2)
a = b.mean(axis=(1,3))
附录:
2×2块平均求法分解
In [340]: x
Out[340]:
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.]])
In [341]: y = x.reshape(2,2,3,2)
In [342]: y[0,:,0,:]
Out[342]:
array([[ 0., 1.],
[ 6., 7.]])
In [343]: y[1,:,2,:]
Out[343]:
array([[ 16., 17.],
[ 22., 23.]])
In [344]: y.mean(axis=(1,3))
Out[344]:
array([[ 3.5, 5.5, 7.5],
[ 15.5, 17.5, 19.5]])