栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用python对单幅图像进行数据增并保存增强后的结果

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用python对单幅图像进行数据增并保存增强后的结果

cv2.error: OpenCV(4.5.4) D:aopencv-pythonopencv-pythonopencvmodulesimgprocsrccolor.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!!!")

增强后的结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011913.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号