使用Numpy将rgb像素值的大小(x,y,3)数组转换为灰度像素值的大小(x,y,1)数组的最佳方法是什么?
我有一个函数,rgbToGrey(rgbArray),它可以取[r,g,b]数组并返回灰度值.我想和Numpy一起使用它来将我的数组的第三维从3缩小到1.
我怎样才能做到这一点?
注意:如果我有原始图像并且可以首先使用Pillow进行灰度图像,这将非常简单,但我没有.
更新:
我正在寻找的功能是np.dot().
从这个问题的答案:
假设我们通过以下公式将rgb转换为灰度:
.3r*.6g*.1b =灰色,
我们可以做到np.dot(rgb[...,:3], [.3, .6, .1])我正在寻找的东西,一个只有灰色值的二维数组.