今天因工作需要寫了個小程序,用于在圖片集中自動抽取需要的照片。該程序只是實現了基本功能,還有很多需要完善的地方,展示出來算是給自己鼓鼓氣吧。
該程序應用有一定特殊條件,因我選擇的圖片集是工業生產過程中自動拍攝生成的,因而其文件名很有規律,所以便于操作。
程序使用說明:
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)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。
新聞熱點
疑難解答