首页 > 解决方案 > 无法在 Opencv 中将黑白图像转换为灰度

问题描述

我是opencv的新手,所以不要介意我!

我想将黑白图像转换为灰度图像并使用cv2.imwrite(). 问题是,在我将其保存到本地驱动器并将其读回后,它以 3 通道图像的形式返回。这里有什么问题?这是我的代码

import cv2

image = cv2.imread("path/to/image/image01.jpg")
print(image.shape) # return (128, 128, 3)

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
print(gray_image.shape) # return (128, 128)
cv2.imwrite("path/to/dir/gray01.jpg", gray_image)

new_gray_img = cv2.imread("path/to/dir/gray01.jpg")
print(new_gray_img.shape) # return (128, 128, 3)

这是我要转换为灰色的图像。

标签: pythonopencv

解决方案


cv2.imread默认加载 3 个通道的图像

您可以使用以下代码替换最后两行代码:

new_gray_img = cv2.imread("path/to/dir/gray01.jpg",cv2.CV_LOAD_IMAGE_GRAYSCALE)
print(new_gray_img.shape) 

另一种方法是使用scipy加载图像:

from scipy.ndimage import imread
new_gray_image=imread("path/to/dir/gray01.jpg")

推荐阅读