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