利用Python整了个图片筛选程序

来源:互联网 发布:淘宝黑曜石本命佛真假 编辑:程序博客网 时间:2024/05/21 09:38

 

今天因工作需要写了个小程序,用于在图片集中自动抽取需要的照片。该程序只是实现了基本功能,还有很多需要完善的地方,展示出来算是给自己鼓鼓气吧。


该程序应用有一定特殊条件,因我选择的图片集是工业生产过程中自动拍摄生成的,因而其文件名很有规律,所以便于操作。

程序使用说明:

1. 需要Python编辑器来运行该程序, 而且需要将程序文件和需要的几个文件夹和.csv文件放在同一目录下,这样运行速度比较快

2. 文件夹original_el 用于存放所有原始图片集,picked_el 用于存放找到的图片, sn.csv文件用于存放需要查找图片的名称



# 程序如下:#_*_coding:utf-8_*_'''Version V17.1.0Date 2017-10-15@Author Cheney'''# 收集EL 图片集中需要的图片,在elpick目录下进行from PIL import Imageimport csvimport os# 获取需要图片的文件名def readImageName():    # elpick目录下读取sn.scv文件,该文件读取出来后元素是list 需要转换为str    get_csv = csv.reader(open("elpick/sn.csv"))    origSN = []    transSN = []    for sn in get_csv:        origSN.append(sn)    tempList = origSN    # 读取csv文件获时获取到的列表,其元素也是列表,需要将其转换为字符串元素,使用下面for语句实现    for s in tempList:        # 去掉列表元素中的[''] 这几个字符         s = str(s).strip('[\'')        s = str(s).strip('\']')    transSN.append(s)    ImageName = transSN    return ImageNamepickImageName = readImageName()# 遍历所有图片集的文件名for image in os.listdir("elpick/original_el"):    # 将读取到的文件名进行处理,去扩展名,若是int文件名需要对文件名进行int 处理    imageName = image.strip(".jpg")    # 比较判断 若遍历的文件名在需要收集的列表中,读取之后并保存到pick_el文件夹下    if imageName in pickImageName:        pickImage = Image.open(('elpick/original_el/%s.jpg') % imageName)        pickImage.save(("elpick/picked_el/%s.jpg") % imageName)