Python批量图片格式转换脚本详解
本文介绍使用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')
以上就是本文的全部内容,希望对读者有所帮助,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













