【问题标题】:converting RGB numpy matrix to greyscale martix [closed]将 RGB numpy 矩阵转换为灰度矩阵 [关闭]
【发布时间】:2019-03-17 18:56:29
【问题描述】:

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

【问题讨论】:

  • 您的问题不清楚。你想知道在 python 中打开图像是否很慢?或者如何使用 numpy 将 rgb 转换为灰度?请提供您的代码,以便我们帮助改进/修复它。
  • 欢迎来到 Stack Overflow。请浏览[帮助中心],了解哪些问题可能会得到解答,哪些问题可能会被关闭。
  • 您好,欢迎来到 SO,如果您能添加更多详细信息以及到目前为止您尝试了什么,那就太好了。

标签: python rgb grayscale


【解决方案1】:

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

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

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

用于处理:

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

>>> 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)

结果:

之前:

平均值之后

【讨论】:

  • 我通常更喜欢使用axis=-1,因为它更通用一点,也就是说,如果您将形状数组 (100, 100, 100, 3) 传递给它,我们可以一次转换数百张图像。
猜你喜欢
  • 2011-02-06
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 2016-08-25
  • 2014-12-21
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多