python批處理將圖片進行放大實例代碼
python批處理圖片放大
有時候對於網絡識別,將原始圖片放進網絡中並不能達到自己想要的效果,但是有時候如果將圖片放大之後,識別率卻能夠達到意想不到的結果,現在提供一種將文件中的圖片進行批處理放大的代碼:
import os from PIL import Image import sys #獲取path目錄下的所有文件 def get_imlist(path): return[os.path.join(path,f) for f in os.listdir(path)] def change_size(path): directorys=get_imlist(path) for directory in directorys: #不是圖片文件就跳過 print(directory) if not(directory.endswith('.jpg') or directory.endswith('.png') or directory.endswith('.bmp')): ##b pass else: img=Image.open(directory) s="/" #獲取文件名(含後綴) oimage_name=directory[directory.rfind(s)+1:] (oimage_width,oimage_height)=img.size new_width=oimage_width * 3 new_height=oimage_height * 3 out=img.resize((new_width,new_height),Image.ANTIALIAS) out.save("%s" %oimage_name) #直接替換 if __name__ == '__main__': change_size("F:\桌面\\test")
python 圖片比例縮放、批處理(分步驟完成)
問題:實現將像素n*n的圖片 等比例縮放為 30*30
0、環境要求:Python3.x 需要安裝pillow模塊:
pip install pillow
1、縮放一個圖片:
from PIL import Image img = Image.open("2.png") # 讀取圖片 out = img.resize((30,30)) # 等比例縮放為30*30像素 out.save("2.png") # 保存圖片(覆蓋原圖)
2、批處理:
/* 目錄結構 E:\data_eg\lip_train: ----------folder1: --------pic1.png --------pic2.png --------pic3.png ----------folder2: --------pic1.png --------pic2.png --------pic3.png --------pic4.png --------pic5.png ----------folder3: --------pic1.png --------pic2.png */ import os from PIL import Image path_target = "E:\data_eg\lip_train" # liptrain路徑下是文件夾,文件夾下是多張圖片 path_list=os.walk(path_target) # 使用os.walk()方法,遍歷所有路徑,文件 # filenames 保存所有圖片名的 list # root 保存二級目錄 for root, dirs, filenames in path_list: for filename in filenames: # 遍歷包含 所有文件名 的list file_path = os.path.join(root,filename) # 合成得到每個圖片的 絕對路徑 print(file_path) # 打印 絕對路徑 至屏幕 img = Image.open(file_path) # 打開 此絕對路徑 的圖片 out = img.resize((30,30)) # 等比例縮放至 30*30 像素 #out = img.convert('L') # 轉換為灰度圖像 out.save(file_path) # 保存,覆蓋原圖片
總結
到此這篇關於python批處理將圖片進行放大的文章就介紹到這瞭,更多相關python批處理圖片放大內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!