将 RGB numpy 矩阵转换为灰度矩阵

converting RGB numpy matrix to greyscale martix

我想在不直接打开图像文件的情况下将 rgb 矩阵转换为灰度矩阵,因为在 python 中过程很慢?

一般情况下,如果要处理图像,您总是必须将图像加载到 python 程序中。如果你不想使用图像处理库,你可以用 numpy 做所有事情(例如 OpenCV 无论如何都可以使用 numpy 数组,所以我会使用 OpenCV)

如果你想使用纯粹的矩阵(numpy),你可以使用它来保存和加载

matrix = np.load('image.npy')
np.save('grayscale.npy',grayscale)

待处理:

假设你有一个 RGB 形状的 numpy 矩阵:

>>> matrix.shape
(1000, 1000, 3)

为了在不执行任何操作的情况下将其转换为灰度 'image processing',您可以简单地在 3rd 上执行 MEAN。 dimension(颜色维度)

grayscale = matrix.mean(axis=-1) # you can use axis=2 or as Nils Werner pointed out: axis=-1 which is more general

>>> grayscale.shape
(1000,1000)

结果:

之前:

平均后