前言
本文重点介绍普通图片格式怎么相互转换,如jpg格式图片怎么批量转化为png格式。在深度学习项目中,有时我们收集到的数据集图片格式不统一,有的代码支持多种格式图片输入,有的则只支持个别格式,所以这时,我们需要通过脚本来转换图片格式。不说废话,直接上代码。
提示:以下是本篇文章正文内容,下面案例可供参考
一、转换思路
使用PIL中的Image模块,对图像进行读取打开,然后输出设定为自己想要的格式即可,重点是要突出文件夹中多张图片也可以批量装换。
二、python脚本分步代码
1.引入库
代码如下(示例):
# 将jpg格式转位png
import os
from PIL import Image
import shutil
import sys
2.定义输入图片路径和输出图片路径
代码如下(示例):
output_dirHR = './pa_car_img/'
output_dirLR = './pa_car_i/'
if not os.path.exists(output_dirHR):
os.mkdir(output_dirHR)
if not os.path.exists(output_dirLR):
os.mkdir(output_dirLR)
3.实现格式转换函数
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()
三、python脚本完整程序
# 将jpg格式转位png
import os
from PIL import Image
import shutil
import sys
# Define the input and output image
output_dirHR = './pa_car_img/'
output_dirLR = './pa_car_i/'
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 = 'F:/feiyi_car_data/pa_car_img/'
image2png(data_dir,'png')
总结
以上就是今天要讲的内容,脚本超级好用,学好python,大大提高工作效率!觉得还不错的,感谢关注收藏,后续还会继续分享好用的数据处理脚本。