cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182:
若出现上述所示问题:
1、检查路径是否有中文;
2、试试将数据路径改为完整路径;
3、换一张图像试试;
# 单一图像进行数据增强;
import numpy as np
from keras.preprocessing.image import ImageDataGenerator
import cv2
import matplotlib.pyplot as plt
# 读取图片
from keras.preprocessing.image import array_to_img
img=cv2.imread('D:/skq/DeepLearning/JSHA/NO15_copy/Add/Lena.PNG')
img= cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = np.expand_dims(img, 0)
# 设置生成器
# datagen = ImageDataGenerator(
# rotation_range=90,
# width_shift_range=0.2,
# height_shift_range=0.2,
# channel_shift_range=10,
# shear_range = 20,
# preprocessing_function=random_crop_image,
# vertical_flip=True,
# zoom_range=0.2,
# horizontal_flip=True)
datagen = ImageDataGenerator(rescale=1./255, # 像素点255,范围(0,1);
rotation_range=20, # 随机旋转角度范围在(-20,20);
width_shift_range=0.1, # 水平位移(-0.1,0.1),提高数据鲁棒性,如大于1,表示像素值;
height_shift_range=0.1, # 上下位移(-0.1,0.1),如大于1,表示像素值;
shear_range=0.1, # 裁剪程度;
zoom_range=0.1, # 缩放程度;
channel_shift_range=10, # 通道随机偏移的最大幅度;
horizontal_flip=True, # 随机做水平翻转;
fill_mode='nearest') # 填充像素,离他最近的真实像素点进行填充;
datagen.fit(img)
# 生成并画图
times=9 # 生成图像数量;
i = 0
for batch in datagen.flow(img, batch_size=1, save_to_dir='D:/skq/DeepLearning/JSHA/NO15_copy/Add/Lena_Augmentation',save_prefix='Lena_new', save_format='jpg'):
print(i)
ax = plt.subplot(3,3,i+1)
plt.sca(ax)
plt.axis('off')
ax.set_title('sample_%s'%(i),fontsize=7)
# 先 plt.savefig;再 plt.imshow;否则会出现保存为空白的现象;
plt.savefig('D:/skq/DeepLearning/JSHA/NO15_copy/Add/Lena_Augmentation/Lena.jpg')
plt.imshow(array_to_img(np.squeeze(batch)))
i += 1
if i==times:
plt.show()
break
# plt.savefig('D:/skq/DeepLearning/JSHA/NO15_copy/Add/Lena_Augmentation/Lena.jpg')
print("finished!!!")
增强后的结果如下:
版权声明:本文为weixin_44119674原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。