问题描述
我有一个图像的尺寸为img_array
的NumPy数组(h,w,3)
,这是某些函数的结果。我想将此NumPy数组直接转换为灰度。
可能的解决方案:
使用img_array
将cv2.imwrite(path)
保存为图像。然后使用cv2.imread(path,cv2.GRAYSCALE)
但是,我正在寻找这样的东西:
def convert_array_to_grayscale_array(img_array):
do something...
return grayscare_version
我已经尝试过cv2.imread(img_array,CV2.GRAYSCALE)
,但是它抛出的错误img_array
必须是文件路径名。
我认为保存单独的图像将占用更多的磁盘空间。是否有使用或不使用OpenCV库函数的更好方法。
解决方法
scikit-image
具有颜色转换功能:https://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_rgb_to_gray.html
from skimage.color import rgb2gray
grayscale = rgb2gray(img_array)