我有一个数组包含图像中所有像素的RGB值。假设4x4图像,数组大小为48,其中前16个值为红色值,后16个值为绿色,最后16个值为蓝色:
[r0, r1, ..., r15, g0, g1, ..., g15, b0, b1, ..., b14, b15]
现在,我想将该数组转换为深度为3的4x4矩阵,格式如下:
^{pr2}$为此,我要做一个reshape
+transpose
+reshape
:
import matplotlib.pyplot as plt
N = 4
numpy.random.seed(0)
rrggbb = numpy.random.randint(0, 255, size=N*N*3, dtype='uint8')
imgmatrix = rrggbb.reshape((3, -1)).transpose().reshape((N, N, 3))
plt.imshow(imgmatrix)
plt.show()
有没有更有效/更短的方法?(即:较少的整形/换位)
以下是一个无需一步操作的选项:
或者可以使用
^{pr2}$np.moveaxis
将axis 0
移到最后一个轴:相关问题 更多 >
编程相关推荐