为了账号安全,请及时绑定邮箱和手机立即绑定

将图像中的白色像素更改为不同的颜色

将图像中的白色像素更改为不同的颜色

绝地无双 2023-02-15 15:25:04
我正在使用包含黑白数字图像的MNIST数据集。我正在尝试将数字(白色部分)从白色/灰色更改为与白色相同程度的不同颜色,比如红色。我已经使用 opencv 将它们转换为 rgb 图像而不是灰度图像,并将它们打包成这样的数组:cImgsTrain = np.asarray([cv2.cvtColor(img.reshape(28,28),cv2.COLOR_GRAY2RGB) for img in x_train])和cImgsTrain.shape产出(60000, 28, 28, 3)60,000 张图像,每张 28x28 和 rgb 的三个通道。我如何更改那里的第一张图片,cImgsTrain[0]从这个白色版本变成红色版本,让更白的像素变成更深的红色,让更灰的像素变成更浅的阴影?有什么功能可以帮助解决这个问题吗?
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

由于您想以与之前的白色/灰色相同的强度更改为红色,为什么不将两个空白图像与其一起堆叠。


OpenCV 使用 BGR,所以我将使用 BGR 而不是 RGB,但如果需要 RGB,您可以更改它。


import numpy as np


#assuming img contains a grayscale image of size 28x28

b = np.zeros((28, 28), dtype=np.uint8)

g = np.zeros((28, 28), dtype=np.uint8)

res = cv2.merge((b, g, img))

cv2.imshow('Result', res)

cv2.waitKey(0)

cv2.destroyAllWindows()

您可以使用此代码并查看。它应该工作。


查看完整回答
反对 回复 2023-02-15
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您可以将当前的灰度输入用作红色通道,并将所有绿色和蓝色通道设置为零。您可以切换它们以使数字具有蓝色或绿色。


import tensorflow as tf

import numpy as np

import matplotlib.pyplot as plt


(x, _), (_, _) = tf.keras.datasets.mnist.load_data()


x = x[0]


f = np.concatenate([x[..., None],

                    np.zeros((28, 28, 1)).astype(int),

                    np.zeros((28, 28, 1)).astype(int)], axis=-1)

plt.imshow(f)

//img1.sycdn.imooc.com//63ec896900016e7f06200460.jpg

查看完整回答
反对 回复 2023-02-15
  • 2 回答
  • 0 关注
  • 236 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号