有没有办法在不改变图像的情况下将灰度图像转换为RGB图像?

2024-05-15 22:52:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用EMNIST数据训练resnet50模型,这是一个包含300k个字母和数字图像的数据集。Resnet50需要三维图像作为它的输入,而不是灰度,所以我试图将所有灰度图像转换为RGB,但它并不像我想要的那样工作。当我用pyplot.imshow公司,RGB图像与灰度图像有很大的不同,因为这些命令实际上只是复制粘贴同一个灰度矩阵的三维图像。在

我尝试过的3个命令如下:

> resizedImageRGB = cv2.cvtColor(resizedImage,cv2.COLOR_GRAY2RGB)
> resizedImageRGB = np.repeat(resizedImage[:,:,np.newaxis],3,-1) arr =
> np.expand_dims(resizedImage, axis=2) resizedImageRGB =
> np.concatenate((arr,arr,arr), axis=2)

其中一个字母的灰度和RGB图像分别给出:

GrayScale Image

RGB Image


Tags: 数据图像image命令np字母rgbcv2
1条回答
网友
1楼 · 发布于 2024-05-15 22:52:45

从灰度到RGB近似在数学上是很困难的。考虑从RGB到灰度Y的公式之一:

Y = 0.299R + 0.587G + 0.114B

现在你可以想象一下,往另一个方向,尝试从Y得到R,G,B值,好吧。。需要太多信息(1等式3未知)。人们实际上是用神经网络来做这件事的。。在

相反,对你来说,正确的方法是反过来做。 也就是说,如果您只能访问灰度数据(或单通道数据),您应该修改您的网络,使其接受正确的输入。在

从你的问题中我不确定你使用的是什么库或确切的代码,但总的来说,这应该不会太难。在

通常,您在网上找到的代码具有为您创建这些网络的函数,并提供正确的输入参数。在

def ResNET(shape=(256,256,3), ...):
    some_code()

然后您通常只需传递自己的输入:

^{pr2}$

希望这有帮助。在

相关问题 更多 >