【发布时间】:2017-06-17 17:18:09
【问题描述】:
使用 Numpy 将大小为 (x, y, 3) 的 rgb 像素值数组转换为大小为 (x, y, 1) 的灰度像素值数组的最佳方法是什么?
我有一个函数 rgbToGrey(rgbArray) 可以获取 [r,g,b] 数组并返回灰度值。我想将它与 Numpy 一起使用,将我的数组的第 3 维从 3 号缩小到 1 号。
我该怎么做?
注意:如果我有原始图像并且可以先使用 Pillow 对其进行灰度化,这将非常容易,但我没有它。
更新:
我要找的函数是np.dot()。
从这个问题的答案:
假设我们通过公式将rgb转换为灰度:
.3r * .6g * .1b = 灰色,
我们可以通过np.dot(rgb[...,:3], [.3, .6, .1]) 得到我正在寻找的东西,一个只有灰色值的二维数组。
【问题讨论】:
标签: python arrays numpy image-processing