Keras:可视化ImageDataGenerator输出

时间:2017-08-21 13:02:31

标签: image-processing plot colors keras

我想看看我的ImageDataGenerator会为我的网络带来什么。

修改
删除了channel_shift_range,意外地将其留在了代码

发电机

genNorm = ImageDataGenerator(rotation_range=10, width_shift_range=0.1, 
       height_shift_range=0.1, zoom_range=0.1, horizontal_flip=True)

获取批次

batches = genNorm.flow_from_directory(path+'train', target_size=(224,224),
      class_mode='categorical', batch_size=64)

x_batch, y_batch = next(batches)

绘制图像

for i in range (0,32):
    image = x_batch[i]
    plt.imshow(image.transpose(2,1,0))
    plt.show()

结果

Generator Output

这是正常还是我在这里做错了什么?

3 个答案:

答案 0 :(得分:1)

您的频道转换会产生奇怪的颜色。你真的需要这样来增加你的样品吗?值10(=非常高)真的是你想要的吗?

除此之外:检查生成器产生的另一种可能更有效的方法是使用save_to_dir(目录函数的流/流参数)设置目录。在那里你将找到所有已经转换并传递到你的拟合/流动函数的图像。

修改:

在处理过程中或显示图像时,您仍然会以某种方式反转图像。我假设原始图像看起来更像是这样:

enter image description here

将ImageDataGenerator的结果保存到目录中,并将其与您使用plt.show看到的结果进行比较。

答案 1 :(得分:1)

尝试一下;更改生成器,如下所示:

import numpy as np

def my_preprocessing_func(img):
    image = np.array(img)
    return image / 255

genNorm = ImageDataGenerator(rotation_range=10, width_shift_range=0.1, 
       height_shift_range=0.1, zoom_range=0.1, horizontal_flip=True, 
       preprocessing_function=my_preprocessing_func)

对我有用,

布鲁诺

答案 2 :(得分:0)

keras使用带有Pillow后端的图像操作,该后端默认为'RGB'格式。因此,您无需反转plt.imshow()中的通道轴。

仅在cv2.imread()(默认为'BGR')中,您可能需要plt.imshow(img[:, :, ::-1])才能显示正确的图像。

BR