python实现批量图片格式转换

yipeiwu_com6年前Python基础

本文实例为大家分享了python实现批量格式转换的具体代码,供大家参考,具体内容如下

深度学习过程中总是绕不开数据集的制作,有时候实际图片格式或大小可能与需要关心的图片信息不一致,那么我们只能手动做好数据预处理,再进行training dataset.现在将介绍最简单的格式转换问题。可以支持批量图片任意格式转换。

直接上代码:

# 将jpg格式转位png 
import os 
from PIL import Image 
import shutil 
import sys 
 
# Define the input and output image 
output_dirHR = '../data/Mosaic_HR/' 
output_dirLR = '../data/Mosaic_LR/' 
if not os.path.exists(output_dirHR): 
  os.mkdir(output_dirHR) 
if not os.path.exists(output_dirLR): 
  os.mkdir(output_dirLR) 
 
 
 
def image2png(dataset_dir,type): 
  files = [] 
  image_list = os.listdir(dataset_dir) 
  files = [os.path.join(dataset_dir, _) for _ in image_list] 
  for index,jpg in enumerate(files): 
    if index > 100000: 
      break 
    try: 
      sys.stdout.write('\r>>Converting image %d/100000 ' % (index)) 
      sys.stdout.flush() 
      im = Image.open(jpg) 
      png = os.path.splitext(jpg)[0] + "." + type 
      im.save(png) 
      # 将已经转换的图片移动到指定位置 
      ''''' 
      if jpg.split('.')[-1] == 'jpg': 
        shutil.move(png,output_dirLR) 
      else: 
        shutil.move(png,output_dirHR) 
      ''' 
      shutil.move(png, output_dirHR) 
    except IOError as e: 
      print('could not read:',jpg) 
      print('error:',e) 
      print('skip it\n') 
 
  sys.stdout.write('Convert Over!\n') 
  sys.stdout.flush() 
 
 
 
if __name__ == "__main__": 
  current_dir = os.getcwd() 
  print(current_dir) # /Users/gavin/PycharmProjects/pygame 
  data_dir = '/home/gavin/MyProject/python/nesunai_faces/' 
 
  image2png(data_dir,'png') 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python读写文件基础知识点

Python读写文件基础知识点

在 Python 中,读写文件有 3 个步骤:  1.调用 open()函数,返回一个 File 对象。  2.调用 File 对象的 read()或 write()...

解决os.path.isdir() 判断文件夹却返回false的问题

今天使用os.path.isdir()判断是否是文件夹的时候发现一个问题: lst = os.listdir(path) for i in lst: if os....

python使用matplotlib绘制折线图教程

python使用matplotlib绘制折线图教程

matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入...

Python自动发邮件脚本

Python自动发邮件脚本

缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了...

python动态进度条的实现代码

python动态进度条的实现代码

python动态进度条的实现代码,具体内容如下所示: 有时候我们需要使用print打印工作进度,正常使用print函数会导致刷屏的现象,举个最简单的例子,从1打印到10,每次停顿0.1秒...