我正在使用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,但它的工作原理更像是亮度/对比度。
答案 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
)
来源:-