Python代码实现将png格式图片批量转换为jpg个格式

Python代码实现将png格式图片批量转换为jpg个格式

问题由来:

最近在做行人检测相关的项目,需要用opencv处理数据集,选用的是INNRIA数据集,但是opencv打开png格式的图片总是报错,故需要将图片转换为jpg格式。

代码实现:

import os
from PIL import Image

dirname_read="png格式文件夹路径/"   //注意后面的斜杠
dirname_write="jpg格式输出路径/"
names=os.listdir(dirname_read)
count=0
for name in names:
    img=Image.open(dirname_read+name)
    name=name.split(".")
    if name[-1] == "png":
        name[-1] = "jpg"
        name = str.join(".", name)
        r,g,b,a=img.split()              
        img=Image.merge("RGB",(r,g,b))   
        to_save_path = dirname_write + name
        img.save(to_save_path)
        count+=1
        print(to_save_path, "------conut:",count)
    else:
        continue

可能遇到的问题:

有些png格式的图片是四通道(多了aphla通道),jpg格式是三通道,故需要将png图片的rgb通道提取出来再进行转换。 有些情况下不是必须的。把这两行代码注释掉即可。

代码:
r,g,b,a=img.split()              
img=Image.merge("RGB",(r,g,b)) 
展开阅读全文

没有更多推荐了,返回首页