将RGB numpy矩阵转换为灰度martix

时间:2019-03-17 09:18:33

标签: python rgb grayscale

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

1 个答案:

答案 0 :(得分:1)

通常,如果要处理图像,则始终必须将图像加载到python程序中。如果您不想使用图像处理库,则可以使用numpy进行所有操作(例如,OpenCV仍然可以使用numpy数组,因此我将使用OpenCV)

如果要使用纯矩阵(numpy),则可以用于保存和加载

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

要处理:

假设您的numpy矩阵具有这种RGB形状:

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

要在不进行任何“图像处理”的情况下将其转换为灰度,只需在3rd上进行MEAN。尺寸(颜色尺寸)

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)

结果:

之前: enter image description here

平均后 enter image description here