如何转换Keras中的图像色彩空间?

Fan*_*nta 5 keras

我正在将RGB彩色图像输送到用Keras实现的神经网络.如何让Keras将图像转换为不同的色彩空间(例如YUV,Lab或某些灰度)?

我尝试了一个Lambda()图层,但收到了一个错误:

model.add(Lambda(lambda x: cv2.cvtColor(x, cv2.COLOR_RGB2LAB), input_shape=(160, 320, 3)))

给我

TypeError: src is not a numpy array, neither a scalar

我相信问题是xTensor,我不知道如何将其转换为OpenCV接受的东西.

更好的是,如果我可以在GPU中完成它.例如,使用Tensorflow,我会使用诸如tf.image.rgb_to_hsv()和之类的函数tf.image.rgb_to_grayscale().

谢谢!

Rya*_*yan 2

如果导入tensorflow,则可以在lambda中使用tf.image.rgb_to_hsv()函数:

def hsv_conversion(x):
    import tensorflow as tf    
    return tf.image.rgb_to_hsv(x)

model.add(Lambda(hsv_conversion, input_shape=(160, 320, 3)))
Run Code Online (Sandbox Code Playgroud)