利用python对文件夹中所有图像进行批量增强处理并保存结果

from keras.preprocessing.image import ImageDataGenerator
import numpy as np
import matplotlib.pyplot as plt


train_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')     # 填充像素,离他最近的真实像素点进行填充;



# train_datagen = ImageDataGenerator(rotation_range=5,
#                                    width_shift_range=0.05,
#                                    height_shift_range=0.05,
#                                    shear_range=0.05,
#                                    zoom_range=0.05,
#                                    channel_shift_range=1,
#                                    horizontal_flip=True,
#                                    fill_mode='nearest')



test_datagen = ImageDataGenerator(rescale=1. / 255)


train_generator = train_datagen.flow_from_directory(
    "./Add/ReadyAug",  # 待增强图像路径(在ReadyAug后一路径下还应设置一层NG文件夹--存放待处理的图像);    #  "D:\\skq\\DeepLearning\\JSHA\\NO15_copy\\Add\\ReadyAug\\NG",  # 待增强图像;
    target_size=(300, 300),
    save_format="jpg",
    batch_size=1,
    class_mode='binary',
    save_to_dir="./Add/Train_NG_AUG",   # 增强后图像路径;     # "D:\\skq\\DeepLearning\\JSHA\\NO15_copy\\Add\\Data_Augmentation"
    save_prefix="NG_Aug")

count_limt = 357 # count_limt * batch_size
count = 0
for x_batch, y_batch in train_generator:
    print(F"------------第{count}次增强-----------------------------")

    count += 1
    # plt.savefig("D:\\skq\\DeepLearning\\JSHA\\NO15_copy\\Add\\Data_Augmentation\\ToothPaste" + str(count) + ".jpg", format="jpg")
    # plt.show()

    if count > count_limt:
        # plt.savefig("data_iter_time/iter_time_" + str(count) + ".png", format="jpg")
        break

print("finished!!!")
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个Python程序,可以读取指定文件夹的所有图像文件,对它们进行伽马增强,并批量保存到指定目录: ```python import os import cv2 def gamma_correction(img, gamma=1.0): inv_gamma = 1.0 / gamma table = (255 * (img / 255) ** inv_gamma).astype('uint8') return table def batch_gamma_correction(src_folder, dst_folder, gamma=1.0): if not os.path.exists(dst_folder): os.makedirs(dst_folder) for file_name in os.listdir(src_folder): if file_name.endswith('.jpg') or file_name.endswith('.jpeg') or file_name.endswith('.png'): src_path = os.path.join(src_folder, file_name) dst_path = os.path.join(dst_folder, file_name) print(f"Processing {src_path}...") img = cv2.imread(src_path) img_gamma = gamma_correction(img, gamma) cv2.imwrite(dst_path, img_gamma) if __name__ == '__main__': src_folder = '/path/to/src/folder' dst_folder = '/path/to/dst/folder' gamma = 2.0 batch_gamma_correction(src_folder, dst_folder, gamma) ``` 在上面的程序,我们定义了一个`gamma_correction`函数来进行伽马增强。此函数接受一个图像和一个伽马值作为参数,并返回一个增强后的图像。然后,我们定义了一个`batch_gamma_correction`函数,它接受源文件夹路径、目标文件夹路径和伽马值作为参数。此函数遍历源文件夹的所有图像文件,并使用`gamma_correction`函数对它们进行伽马增强,并将增强后的图像保存到目标文件夹。最后,我们在主函数调用`batch_gamma_correction`函数,并传入源文件夹路径、目标文件夹路径和伽马值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44119674

觉得有帮助,鼓励下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值