如何在Keras ImageDataGenerator中应用OpenCV colormap转换?

2024-03-28 13:51:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在所有列车图像中应用OpenCV colormap过滤器,但我使用的是flow_from_directory方法,如下所示:

train_datagen = ImageDataGenerator()

train_generator = train_datagen.flow_from_directory(TRAIN_DIR,
    target_size=(224, 224),
    batch_size=50,
    class_mode='binary')

在这种情况下,如何添加颜色贴图


Tags: 方法from图像过滤器sizetrainflowgenerator
1条回答
网友
1楼 · 发布于 2024-03-28 13:51:38

您可以将预处理函数传递给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')

原件:

enter image description here

预处理:

enter image description here

相关问题 更多 >