Keras showing images from data generator
I had the same problem as OP and solved it by rescaling the pixels from 0-255 to 0-1.
Keras' ImageDataGenerator takes a 'rescale' parameter, which I set to (1/255). This produced images with expected colors
image_gen = ImageDataGenerator(rescale=(1/255))
The dtype of your image array is 'float32', just convert it into 'uint8':
plt.imshow(image.astype('uint8'))