日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

imgaug批量椒盐噪声 python_python图像扩增-imgaug

發布時間:2025/3/12 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 imgaug批量椒盐噪声 python_python图像扩增-imgaug 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

# encoding=utf-8

import os

import imageio

import random

import numpy as np

import imgaug as ia

import concurrent.futures

from imgaug import augmenters as iaa

import matplotlib.pyplot as plt

from argparse import ArgumentParser

ia.seed(4)

# %matplotlib inline

# 參考 https://github.com/aleju/imgaug

func_norm = iaa.ContrastNormalization(alpha=(0.5, 1.5), per_channel=False)

func_add = iaa.Add(value=(-30, 40), per_channel=False)

func_hue_saturation = iaa.AddToHueAndSaturation(

value=(-35, 30), per_channel=False)

func_multiply = iaa.Multiply(mul=(0.8, 1.5), per_channel=False)

func_gamma = iaa.GammaContrast(gamma=(0.8, 1.5), per_channel=False)

func_log = iaa.LogContrast(gain=(0.7, 1.2), per_channel=False)

func_sigmoid = iaa.SigmoidContrast(gain=(2, 5), cutoff=0.5, per_channel=False)

func_coarse = iaa.CoarseDropout(

p=(0.1, 0.2), size_percent=0.1, per_channel=False)

switch_func = {

0: func_norm,

1: func_add,

2: func_hue_saturation,

3: func_multiply,

4: func_gamma,

5: func_log,

6: func_sigmoid,

7: func_coarse

}

def getFilePath(root_path, file_list):

dir_or_files = os.listdir(root_path)

for dir_file in dir_or_files:

dir_file_path = os.path.join(root_path, dir_file)

if os.path.isdir(dir_file_path):

getFilePath(dir_file_path, file_list)

else:

file_list.append(dir_file_path)

def getFilePath2(root_path, file_list, folder_list):

dir_or_files = os.listdir(root_path)

for dir_file in dir_or_files:

dir_file_path = os.path.join(root_path, dir_file)

if os.path.isdir(dir_file_path):

folder_list.append(dir_file_path)

getFilePath2(dir_file_path, file_list, folder_list)

else:

file_list.append(dir_file_path)

def getFilePathFilters(root_path, file_list, dir_filters):

dir_or_files = os.listdir(root_path)

for dir_file in dir_or_files:

dir_file_path = os.path.join(root_path, dir_file)

if os.path.isdir(dir_file_path):

if dir_file in dir_filters:

getFilePathFilters(dir_file_path, file_list, dir_filters)

else:

file_list.append(dir_file_path)

def makeDir(root_path):

if not os.path.exists(root_path):

os.makedirs(root_path)

def showImage(image):

image = np.array(image)

plt.imshow(image)

plt.show()

def saveImage(image, write_path):

imageio.imwrite(write_path, image)

def augmentFunc(image, index):

return switch_func[index].augment_image(image)

# 多線程執行函數

def augExecute(file_path):

new_file_path = file_path.replace(args.root_folder, args.new_folder)

print(new_file_path, end='\n')

image = imageio.imread(file_path)

index = random.randint(0, 7)

new_image = augmentFunc(image, index)

# showImage(new_image)

saveImage(new_image, new_file_path)

def colorImageAugment(augment_list, max_workers, dir_dict):

for augment_folder in augment_list:

file_list = []

folder_list = []

getFilePath2(augment_folder, file_list, folder_list)

# 創建新目錄文件夾及其子文件夾

for folder_path in folder_list:

new_folder_path = folder_path.replace(

args.root_folder, args.new_folder)

makeDir(new_folder_path)

if max_workers == 0:

# 單線程

for file_path in file_list:

augExecute(file_path)

else:

# 多線程

with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:

for _ in executor.map(augExecute, file_list):

pass

def main(args):

aug_folder_list = args.image_folder_path

dir_dict = {'root_dir': args.root_folder, 'trans_dir': args.new_folder}

max_workers = int(args.max_workers)

print("Start to augment image")

colorImageAugment(aug_folder_list, max_workers, dir_dict)

print("The end")

if __name__ == "__main__":

parser = ArgumentParser(description="Augment color image")

parser.add_argument(

"image_folder_path", nargs='+', help="Absolute path of image folder that going to augmentation")

parser.add_argument(

"root_folder", type=str, help="The folder and file under the root_folder is going to augmentation")

parser.add_argument("new_folder", type=str,

help="The folder that going to be build")

parser.add_argument("max_workers", type=int,

default=9, help="Multi thread num")

args = parser.parse_args()

main(args)

'''Usepython data_aug.py /your/path/to/augmentation/train/subdir1/ /your/path/to/augmentation/train/subdir2/ ... /your/path/to/augmentation/train/subdirn/ train train_aug第一個參數是 image_folder_path 需要處理的文件夾 要求絕對路徑 可以傳入多個第二個參數是 root_folder 處理文件夾的父級目錄 程序會將該目錄同級路徑下創建 new_folder, 同時創建相同的字目錄, 然后將 root_folder 下的圖像處理保存到 new_folder 下相同自路徑下第三個參數是 new_folder 見root_folder第四個參數是 max_workers 線程數量 0 為單線程'''

總結

以上是生活随笔為你收集整理的imgaug批量椒盐噪声 python_python图像扩增-imgaug的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美69式性猛交 | 天天射天天色天天干 | 国产一区二三区 | 国产91国语对白在线 | 狠狠躁夜夜躁av无码中文幕 | 成人看片免费 | 肌肉猛男裸体gay网站免费 | 五月在线视频 | 国产麻豆剧传媒精品国产av | 丰满人妻一区二区三区精品高清 | 成年人视频免费在线观看 | 葵司av电影| 精品人妻一区二区三区四区五区 | 你懂的在线观看网站 | 国产又大又黄又粗 | 午夜精品视频在线观看 | 欧美xxxxx高潮喷水麻豆 | 国产精品天美传媒沈樵 | 国产aⅴ激情无码久久久无码 | 日韩av一区二区在线播放 | 免费裸体美女网站 | 中日韩男男gay无套 人人草人人干 | 久草99 | 人人看人人模 | 污视频网址 | 国产九九九九九 | 日韩精品一二 | 国产精品二区在线观看 | 夜色网| 九九热av| 久久久资源网 | 日韩影视一区 | av番号网| 色婷婷狠狠18禁久久 | 777精品久无码人妻蜜桃 | 91久久亚洲 | 特级淫片裸体免费看冫 | 久久久免费精品 | 亚洲大片免费 | 国产夫妻自拍av | 老头把女人躁得呻吟 | 天天插天天操天天干 | 欧美综合视频在线观看 | 国产精品三级在线观看无码 | 痴女扩张宫交脱垂重口小说 | 五月激情站 | 九九九热 | 九九热精品视频在线观看 | 日本aa大片| 亚洲精品综合网 | 欧洲成人午夜精品无码区久久 | 台湾佬成人中文网222vvv | 日本一本视频 | 91激情视频在线观看 | 超碰97av| 亚洲免费在线看 | 黄色一级大片免费看 | 国产乱淫精品一区二区三区毛片 | 亚洲2022国产成人精品无码区 | 亚洲成年人影院 | 性感美女在线 | 女人扒开屁股让我添 | 日韩精品在线视频观看 | 91成人精品国产刺激国语对白 | 欧美专区在线播放 | 美女被出白浆 | ,一级淫片a看免费 | 蜜桃av噜噜一区二区三区小说 | 日本高清视频一区二区三区 | 日本在线观看www | 五月天综合激情网 | 岛国av网站 | 99视频导航 | 天堂在线中文字幕 | 成人国产三级 | 美女久久久久久久 | 中文字幕一区二区三区波野结 | 国产亚洲视频一区 | 97精品超碰一区二区三区 | 肉视频在线观看 | 超碰综合在线 | 爆操91 | 久久国产精品网站 | 中文字幕自拍 | 国产美女自慰在线观看 | 经典三级视频 | 91官网视频| 欧美一区二区黄片 | 国产成人免费在线 | 丰满护士巨好爽好大乳 | 香蕉视频| 久久久久久久久91 | 高潮av| 亚洲综合色吧 | 交hdsexvideos娇小| 国产又粗又深又猛又爽又在线观看 | 国产成人福利视频 | 亚洲色图36p | 黄色一级网|