我已经使用tf.keras.preprocessing.image.ImageDataGenerator
生成了图像,并绘制了使用matplotlib
生成的图像,结果如下:
这实际上是我想要保存在文件系统中的内容,但是由于某种原因,每当我尝试使用cv2.imwrite()
函数编写图像时,我都会得到:
在某些情况下,保存的图像完全空白(所有像素均为白色)。这是代码:
cnt = 0
for image, label in zip(augmented_images, labels):
cnt += 1
path = os.path.join(augmented_raw_images_train_dir,str(int(label[0])),"aug_"+str(cnt)+".png")
cv2.imwrite(path, image[0])
请记住,图像的大小为1,因此image[0]
实际上是大小为(150, 150, 1)
的n维numpy数组。
答案 0 :(得分:2)
数据中的像素值很可能在[0.0,1.0]范围内。您应先将它们转换为[0,255]范围,然后再通过opencv保存它们。
cnt = 0
for image, label in zip(augmented_images, labels):
cnt += 1
path = os.path.join(augmented_raw_images_train_dir,str(int(label[0])),"aug_"+str(cnt)+".png")
image_int = np.array(255*image[0], np.uint8)
cv2.imwrite(path, image_int)
如果值在[-1,1]范围内,则可以进行相应调整。