Keras ImageDataGenerator重新缩放参数如何工作?

dor*_*mez 6 python keras

我始终使用此参数将原始图像像素值的数组缩放到[0,1]之间并指定参数rescale=1./255

然后当我这样做时:

from keras.preprocessing.image import load_img, img_to_array, ImageDataGenerator

img = load_img('val_00009301.JPEG')
img_arr = img_to_array(img)
datagen = ImageDataGenerator(rescale=1./255)
for batch in datagen.flow(img_arr, 
                            batch_size=1, 
                            save_to_dir='path/to/save', 
                            save_prefix='1_param', 
                            save_format='jpeg'):......`
Run Code Online (Sandbox Code Playgroud)

当我检查“ path / to / save”目录时,我看到ImageDataGenerator类生成的图片完全正常。这是怎么回事?我应该看到几乎全黑的图像。

Hem*_*con 6

我对您的示例进行了一些更改以绘制图像并打印像素值。似乎在绘制时图像会自动重新缩放,因为我没有注意到我的输入图像和绘制的图像之间有任何差异。我认为保存时也会发生同样的情况。

from keras.preprocessing.image import load_img, img_to_array, ImageDataGenerator
import numpy as np
from matplotlib import pyplot

img = load_img('capture102.jpg')
img_arr = np.expand_dims(img_to_array(img), axis=0)
datagen = ImageDataGenerator(rescale=1./255)

for batch in datagen.flow(img_arr, batch_size=1, save_to_dir='path/to/save', save_prefix='1_param', save_format='jpeg'):
    print(batch[0][0][0])
    pyplot.imshow(batch[0])
    pyplot.show()
    break
Run Code Online (Sandbox Code Playgroud)

打印的值为:[0.21960786 0.23529413 0.27058825]