cv2.imread: 读取灰度图时如何保持颜色通道

cv2.imread: how to keep color channel when reading in grayscale image

我正在尝试使用 opencv2 加载灰度图像,但不知何故颜色通道被完全删除。

当我在做的时候:

img = cv2.imread(PATH_TO_IMAGE, 1) // load image as rgb 

img.shape returns 例如 (28,28,3)

但是如果我加载与灰度相同的图像:

img = cv2.imread(PATH_TO_IMAGE, 0) // load image as grayscale 

img.shape returns (28,28),但我会 expect/need (28,28,1)

的形状

这是 opencv 中的错误还是我遗漏了什么?

提前致谢!

OpenCV 在加载灰度图像时确实表现得像 Python 中那样。如果您需要添加频道以使其成为 (28,28,1),您可以这样做

import numpy as np
img = img[:, :, np.newaxis]