对于密集型CPU/IO操作,合理使用多线程/进程可以大大加快速度,在机器学习中经常需要对我们自己的图像数据集做一些预处理,因此使用多进程是一个不错的方式,下面的例子展示了使用Python自带的多进程模块multiprocessing例子。

'''
使用多进程批量处理图片
'''
from multiprocessing.dummy import Pool
from PIL import Image
from skimage.transform import rescale, resize
from skimage import io, util
import numpy as np
import os
from PIL import Imageglobal count
count=1dir = r"G:\machinelearning\GAN\high_res_1447\train\images"
save_dir=r"G:\machinelearning\GAN\low_res_1447_x8_noisy\train\images"def get_image_paths(folder=dir):'''返回图片路径列表dir: 存放图片的文件夹路径'''return (os.path.join(folder, f)for f in os.listdir(folder)if 'jpeg' or 'png' in f)def resize_image(filename):'''(1)读取图片(2)设定新的存储路径(3)图片是否添加噪声(4)resize图片(5)保存图片,skimage.io.imsave()'''global countfull_file_name = os.path.join(dir,filename)# 保存的新路径new_full_file_name = os.path.join(save_dir,filename.split('\\')[-1])# print("文件全路径:",full_file_name)image = np.array(Image.open((filename))) # 打开图片,转换为ndarray# 添加高斯噪声,方差0.002image = util.random_noise(image, mode='gaussian',var=0.002)image_resized = resize(image, (int(image.shape[0] / 8), int(image.shape[1] / 8)),anti_aliasing=True)io.imsave(new_full_file_name,image_resized)print('存储resize之后的图像,第 {} 张,存储成功!'.format(count))count = count+1if __name__ == '__main__':images = get_image_paths()      # 已经有缺省参数pool = Pool(24)pool.map(resize_image, images)  # 注意map用法,是multiprocessing.dummy.Pool的方法pool.close()pool.join()

Python多进程批量处理图片相关推荐

  1. python批量图像处理_基于python代码批量处理图片resize

    出差做PPT,要放一些图片上去,原图太大必须resize,十几张图片懒得一一处理了,最近正好在学python,最好的学习方式就是使用,于是写了一个批量处理图片resize的代码,在写的过程中,熟悉了p ...

  2. python代码批量处理图片resize

    出差做PPT,要放一些图片上去,原图太大必须resize,十几张图片懒得一一处理了,最近正好在学python,最好的学习方式就是使用,于是写了一个批量处理图片resize的代码,在写的过程中,熟悉了p ...

  3. python实用批量处理图片小项目

    批量修改图片大小 代码 def convertjpg(jpgfile,outdir,width=512,height=512):img=Image.open(jpgfile)try:new_img=i ...

  4. python生成器 图片分类_python批量处理图片图片Python迭代器和生成器介绍

    Python迭代器和生成器介绍迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration ...

  5. python批量处理图片属性_python PIL 批量处理处理图片

    python PIL 批量处理处理图片 客户给一堆图片要传到后台,图片太大了,上百张图用photoshop改太慢,就想到用python写个简单的批处理.功能简单就是把原图按比例缩小,代码更简单 20多 ...

  6. Python 多进程开发与多线程开发

    我们先来了解什么是进程? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本:进程 ...

  7. python PHP 多进程,python多进程的用法示例(代码)

    本篇文章给大家带来的内容是关于python多进程的用法示例(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. python多线程适合IO密集型场景,而在CPU密集型场景,并不能充 ...

  8. python图片批量处理(水印、重命名)

    源码说明 学习.工作中经常会遇到给多个图片添加水印或者重命名的情况,此时通过这个python编写的程序,就可以快速的将N个需要添加水印的图片 快速的处理,还支持透明度.水印位置等 批量处理图片源码: ...

  9. python多进程共享内存_python 进程间通信 共享内存

    python多进程通信实例分析 python多进程通信实例分析操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那 ...

最新文章

  1. 树莓派配置路由_树莓派安装Ubuntu 20.04 LTS并配置
  2. 数开头的成语有哪些_艺术留学文书申请过程中应避开哪些雷区?ACG艺术留学
  3. 使用conda报错:from conda.cli import main ModuleNotFoundError: No module named conda
  4. 全局变量、静态全局变量、静态局部变量和局部变量的区别
  5. flash加载flv,本地测试正常,上传至空间则失败解决办法
  6. 制作ubuntu 18.04 U盘启动盘
  7. python守护线程t.setDaemon(True)
  8. linux coreutils升级,Coreutils
  9. 中文分词——正向最大匹配法
  10. 安装配置rabbitmq
  11. 主题:spring集成quartz,出现2次重复调用的问题
  12. 《破茧成蝶——用户体验设计师的成长之路》一1.2 邂逅用户体验设计
  13. 在vs中创建Analysis Services项目
  14. js控制5秒后页面自动跳转
  15. DllMain——DLL程序入口点函数
  16. Android技术知识点:如何向 TextView 添加字体
  17. 如何对系统声音进行选择与设置
  18. numpy函数:arange(),reshape()用法,
  19. 路由器与交换机配置——交换机默认网关(实现跨网段telnet)
  20. MySQL连接查询的成本

热门文章

  1. nginx+rtmp+OBS搭建音视频直播服务
  2. java+ssm基于微信小程序的游泳馆管理系统 uniapp 小程序
  3. android调起应用商店某应用详情页
  4. 发布订阅模式,在工作中它的能量超乎你的想象
  5. 地址解析协议(Address Resolution Protocol)
  6. PJSIP软电话源码编译和使用
  7. Allegro通过宏录制设置快捷键
  8. 显示地图不出来的问题解决
  9. PHP PDF内容识别 抓取信息 方法
  10. altium 旋转线段_几何画板旋转动画教程,这软件真牛!