我正在使用 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 的三个 channel 。
我如何更改那里的第一张图片,cImgsTrain[0]
,从这个白色版本变成红色版本,让更白的像素变成更深的红色,让更灰的像素更亮阴影?有什么功能可以帮助解决这个问题吗?
最佳答案
既然你想以与之前的白色/灰色相同的强度变为红色,为什么不将两个空白图像与其一起堆叠。
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()
你可以使用这段代码看看。它应该有效。
关于python - 将图像中的白色像素更改为不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62722767/