首页 > 解决方案 > 通过对像素求和来重新缩放矩阵

问题描述

有没有一种通过简单地添加相邻像素来重新缩放矩阵的快速方法?

所以对于一个X=N*M矩阵,你会得到一个我应该Y=(N/n) *(N/m)在其中n * m添加像素的区域。

我一直在手动(通过脚本)这样做,但我认为必须有某种方法可以做到这一点。

for i in range(0, X.shape[0]/n):
    for j in range(0, X.shape[1]/m):
        Y[i, j] = np.sum(X[i*n:i*n+n, j*m:j*m+m])

例如

X = [[0 1 2 3]
     [2 3 4 5]
     [3 4 6 8]
     [2 3 4 5]]

Y = [[ 6 14]
     [12 23]]

标签: pythonnumpymatrixresize

解决方案


一种纯粹的 numpy 方法是将矩阵重塑为更多轴并在适当的轴上求和。

Y = X.reshape(X.shape[0]/n, n, X.shape[1]/m, m).sum((1, 3))

推荐阅读