Python批量图片格式转换脚本详解

唐可
唐可
发布时间:2026-10-13 | 1人浏览过
原创

本文介绍使用Python进行批量图片格式转换的方法,适用于深度学习数据预处理场景。通过调用PIL库,脚本支持将JPG等格式批量转换为PNG或其他格式,并处理文件路径与异常。代码示例展示了如何遍历目录、转换单张图像并输出进度,帮助开发者高效完成数据集格式统一工作。

本文分享了一个使用Python实现批量图片格式转换的具体代码示例,供读者参考。

在深度学习项目中,数据集的制作是不可或缺的一环。有时实际获取的图片格式或尺寸可能与模型训练所需的信息不匹配,此时必须手动进行数据预处理,才能构建有效的训练数据集。本文将介绍一种简单的格式转换方案,支持对批量图片进行任意格式的转换操作。

以下是实现该功能的代码示例:

# 将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 相关产品和应用

全部下载

专题列表