Вы можете передать функцию предварительной обработки на ImageDataGenerator
.
def cmap_transf(image):
return cv2.applyColorMap(image.astype(np.uint8), cv2.COLORMAP_JET)
train_generator = ImageDataGenerator(preprocessing_function=cmap_transf)
Полный рабочий пример:
import cv2
import numpy as np
from tensorflow.keras.preprocessing.image import ImageDataGenerator
import os
import matplotlib.pyplot as plt
os.makedirs('test', exist_ok=True)
cv2.imwrite('test/img.jpg', np.random.randint(0, 256, (200, 200, 3)))
def cmap_transf(image):
return cv2.applyColorMap(image.astype(np.uint8), cv2.COLORMAP_JET)
train_generator = ImageDataGenerator(preprocessing_function=cmap_transf)
plt.imshow(next(iter(train_generator.
flow_from_directory('.',
classes=['test'])))[0][0, ...])
os.unlink('test/img.jpg')
os.rmdir('test')
Оригинал:
Предварительно обработанный: