python批量裁剪圖片,並按原來層級保存

最近要做圖片的預處理工作,目的是把原圖像的roi提取出來。這裏使用python做圖像的批量裁剪 ,代碼如下:

# coding: utf-8
from PIL import Image
import os
import os.path
import numpy as np
import cv2

imgs = []
os_getcwd=os.getcwd().replace('\\','/')
dbDir = os_getcwd + "/db-before/"
print(os_getcwd)
people = os.listdir(dbDir)
people.sort()
print(people)
path_after = r'../db-after'

for person in people:
    personDir = dbDir + person + "/"
    hands = os.listdir(personDir)
    #print('personDir:',personDir)
    #print('hands:', hands)
    for hand in hands:
        os.makedirs('crop-image'+'./'+path_after+'./'+person+'./'+hand)
        handDir = personDir + hand + "/"
        mg = os.listdir(handDir)
        mg.sort()
        #print("mg:",mg)
        imgs = imgs + [handDir + s.split(".")[0] for s in mg if not s.split(".")[0] == "Thumbs"]
        #print("imgs:", imgs)
per_img_path = [i.replace('db-before', 'db-after') for i in imgs]
per_img_path=[i.replace('\\', '/') for i in per_img_path]
print("per_img_path:",per_img_path)


for index,imgPath in enumerate(imgs):
    print('imgPath:',imgPath)
    img = Image.open(imgPath+'.bmp')
    print(img.format, img.size, img.mode)
    #img.show()
    box1 = (60, 90, 270, 170)  # 設置左、上、右、下的像素
    image1 = img.crop(box1)  # 圖像裁剪
    print('per_img_path:',per_img_path[index])
    image1.save(per_img_path[index]+'.bmp')  # 存儲裁剪得到的圖像

原來圖片:

裁剪後:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章