使用ImageDataGenerator更改颜色

时间:2019-07-30 06:52:55

标签: python tensorflow keras

我正在使用keras ImageDataGenerator预处理训练图像,并且需要某种颜色更改功能(随机颜色,色调更改)。

我的生成器代码如下:

image_generator = tf.keras.preprocessing.image.ImageDataGenerator(                                 
                              horizontal_flip = True,
                              brightness_range= [0.7, 1.3],
                              rotation_range = 10,
                              zoom_range = [0.8, 1.2],
                              width_shift_range=0.2,
                              height_shift_range=0.2,
                             fill_mode="nearest")

我试图遍历keras的datagerator手册,发现的最好的是-channel_shift_range,但它的工作原理更像是亮度/对比度。

enter image description here

2 个答案:

答案 0 :(得分:1)

也许this可以提供帮助。您可以定义一个自定义函数以在ImageDataGenerator中使用它,以修改图像颜色。

例如:

import cv2
import numpy as np
from PIL import Image

def myFunc(image):
    image = np.array(image)
    hsv_image = cv2.cvtColor(image,cv2.COLOR_RGB2HSV)
    return Image.fromarray(hsv_image)

train_datagen = ImageDataGenerator(
                rescale=1. / 255,
                rotation_range=20,
                width_shift_range=0.2,
                height_shift_range=0.2,
                horizontal_flip=True,
                preprocessing_function = myFunc
                )

答案 1 :(得分:0)

在阅读有关Medium的文章时发现了一些东西。可能会有帮助:-

import cv2
import numpy as np
from PIL import Image
def myFunc(image):
    image = np.array(image)
    hsv_image = cv2.cvtColor(image,cv2.COLOR_RGB2HSV)
    return Image.fromarray(hsv_image)

train_datagen = ImageDataGenerator(
    rescale=1. / 255,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=True,
    preprocessing_function = myFunc
    )

来源:-

https://medium.com/@halmubarak/changing-color-space-hsv-lab-while-reading-from-directory-in-keras-c8ca243e2d57