1. 程式人生 > >利用Python整了個圖片篩選程式

利用Python整了個圖片篩選程式

今天因工作需要寫了個小程式,用於在圖片集中自動抽取需要的照片。該程式只是實現了基本功能,還有很多需要完善的地方,展示出來算是給自己鼓鼓氣吧。

該程式應用有一定特殊條件,因我選擇的圖片集是工業生產過程中自動拍攝生成的,因而其檔名很有規律,所以便於操作。

程式使用說明:

1. 需要Python編輯器來執行該程式, 而且需要將程式檔案和需要的幾個資料夾和.csv檔案放在同一目錄下,這樣執行速度比較快

2. 資料夾original_el 用於存放所有原始圖片集,picked_el 用於存放找到的圖片, sn.csv檔案用於存放需要查詢圖片的名稱

# 程式如下:#_*_coding:utf-8_*_
''' Version V17.1.0 Date 2017-10-15 @Author Cheney ''' # 收集EL 圖片集中需要的圖片,在elpick目錄下進行 from PIL import Image import csv import 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 ImageName pickImageName = 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)