import skimage.io as io
import os,sys
from skimage import data_dir
import numpy as np
import matplotlib.pyplot as plt
import cv2
from tensorflow.keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
datagen = ImageDataGenerator(rotation_range=40, # 随机旋转角度的范围
width_shift_range=0.2, # 随机转换图片宽度的范围
height_shift_range=0.2, # 随机转换图片高度的范围
shear_range=0.2, # 随机剪切转换比例
zoom_range=0.2, # 随机放缩比例
horizontal_flip=True,# 开启水平翻转
fill_mode='nearest' # 填充策略
)
path="/data_2/everyday/0312/others/pic/";
dirs=os.listdir(path)
#保存本地
# for file in dirs:
# img = load_img(path+file)
# x = img_to_array(img)
# x = x.reshape((1,) + x.shape) # 这是一个numpy数组,形状为 (1,150, 150,3)
# i = 0
# for batch in datagen.flow(x, batch_size=1,
# save_to_dir='/data_2/everyday/0312/others/pic-aug'):
# i += 1
# if i > 50: # 数据扩充倍数,此处为数据扩充50倍
# break # 否则生成器会退出循环
for file in dirs:
img = load_img(path + file)
x = img_to_array(img)
x = x.reshape((1,) + x.shape) # 这是一个numpy数组,形状为 (1,150, 150,3)
i = 0
for batch in datagen.flow(x,batch_size=1):
# cv2.imshow("src",x[0][:,:,::-1])
# cv2.waitKey(0)
plt.figure(i)
imgplot = plt.imshow(array_to_img(batch[0]))
plt.show()
i += 1
if 0 == i % 10:
break
不知道为啥用cv显示原图全是白的。。。。这样可以src = cv2.cvtColor(np.asarray(array_to_img(x[0])), cv2.COLOR_RGB2BGR)
keras fit 中的 verbose
verbose:日志显示
verbose = 0 为不在标准输出流输出日志信息
verbose = 1 为输出进度条记录
verbose = 2 为每个epoch输出一行记录
注意: 默认为 1
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:keras ImageDataGenerator 数据增强的数据显示查看 - Python技术站