python实现批量图片格式转换


前言

本文重点介绍普通图片格式怎么相互转换,如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,大大提高工作效率!觉得还不错的,感谢关注收藏,后续还会继续分享好用的数据处理脚本。

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
文献格式转换是指将一种文献格式(如APA、MLA等)换为另一种文献格式的过程。Python是一种高级编程语言,可以用于自动化处理文献格式转换的任务。 在Python中,可以使用一些现有的库来实现文献格式转换。其中一个常用的库是pybtex。pybtex是一个用于处理BibTeX格式的Python库,可以读取、写入和换不同的文献格式。 要在Python中使用pybtex进行文献格式转换,可以按照以下步骤进行操作: 1. 安装pybtex库:在Python环境中安装pybtex库,可以使用pip工具运行以下命令:pip install pybtex 2. 导入pybtex库:在Python代码中导入pybtex库,使用以下代码:import pybtex 3. 读取文献文件:使用pybtex库中的函数读取要换的文献文件,例如BibTeX格式的文件,使用以下代码:bib_data = pybtex.BibliographyData() 4. 进行格式转换:使用pybtex库中的函数将文献文件换为目标格式,例如APA格式,使用以下代码:apa_style = pybtex.style.formatting.apa.Style() apa_formatted_entries = apa_style.format_entries(bib_data.entries.values()) 5. 输出换结果:使用Python中的输出函数将换后的文献格式输出到文件或打印到屏幕上,例如使用以下代码将换结果打印到屏幕上:print(apa_formatted_entries) 通过上述步骤,我们可以使用Python中的pybtex库将文献格式进行换。需要注意的是,具体的换操作可能会根据不同的文献格式库而有所不同,可以根据具体的需求选择适合的库和方法进行文献格式转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1623863125

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值