Python计算机视觉:对图片进行格式转换

2019-04-15 19:18发布

# -*- coding: utf-8 -*- from PCV.tools.imtools import get_imlist #导入原书的PCV模块 from PIL import Image import os import pickle filelist = get_imlist('C:/PythonWorkSpace/pic/') #获取convert_images_format_test文件夹下的图片文件名(包括后缀名) print(filelist) imlist = open('C:/PythonWorkSpace/pic/imlist.txt','wb') #将获取的图片文件列表保存到imlist.txt中 pickle.dump(filelist,imlist,0) #序列化 imlist.close() for infile in filelist: outfile = os.path.splitext(infile)[0] + ".png" #分离文件名与扩展名 if infile != outfile: try: Image.open(infile).save(outfile) except IOError: print ("cannot convert", infile) 我是对比2个链接进行修改的,运行以后有乱码出现,问题原因找到啦,(改为:pickle.dump(filelist,imlist,0) #序列化)其中,模块定义:1/ pickle.dump(obj, file, [,protocol])   注解:将对象obj保存到文件file中去。      protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。protocol默认值为0。      file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以'w'方式打开的文件或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。2/ os.path.splitext(path)>>> os.path.splitext('c:\csv\test.csv')   ('c:\csv\test', '.csv') 3/ Image.open(infile).save(outfile) PIL 的 open() 函数用于创建 PIL 图像对象,save() 方法用于保存图像到具有指定文件名的文件。