我正在处理一个深度学习项目,有很多图片,但这些图片不需要彩色。我使用以下方式保存了它们:
import matplotlib.pyplot as plt
plt.imsave('image.png', image, format='png', cmap='gray')
然而,当我检查图像的形状时,结果是:
import cv2
img_rgb = cv2.imread('image.png')
print(img_rgb.shape)
(196,256,3)
即使我观看的图像是灰度的,但我仍然有3个颜色通道。我意识到我需要进行一些代数运算,以将这些3个通道转换为1个单独的通道。
我尝试了线程 "如何在Python中将RGB图像转换为灰度图像?" 中描述的方法,但我感到困惑。
例如,当使用以下方法进行转换时:
from skimage import color
from skimage import io
img_gray = color.rgb2gray(io.imread('image.png'))
plt.imsave('image_gray.png', img_gray, format='png')
然而,当我加载新图像并检查其形状时:
img_gr = cv2.imread('image_gray.png')
print(img_gr.shape)
(196,256,3)
我在那个帖子上尝试了其他方法,但结果都是一样的。我的目标是获得形状为(196,256,1)的图像,这将使卷积神经网络的计算强度大大降低。
任何帮助都将不胜感激。