python 識別圖片中的人臉,並裁剪人臉,將圖片轉化成固定大小,並將圖片再按照自己的后綴名存儲起來


下列代碼,識別圖片中的人臉,並裁剪人臉,將圖片轉化成固定大小,再按照自己的后綴名存儲起來


bug:我是用來識別單張圖片中只有一個人臉的數據集,如果用來處理一張圖片中的多個人臉,那么圖片的命名可能會有bug

-

import cv2
import os
import glob
#最后剪裁的圖片大小
size_m = 48
size_n = 48
def detect(img, cascade):
    rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSize=(30, 30),flags=cv2.CASCADE_SCALE_IMAGE)
    if len(rects) == 0:
        return []
    rects[:, 2:] += rects[:, :2]
    return rects
 
cascade = cv2.CascadeClassifier("cascades\\haarcascade_frontalface_alt2.xml")
imglist=glob.glob("data/image/jaffe/*")
for list in imglist:
    
    #print(list)
    # cv2讀取圖像
    img = cv2.imread(list)
    dst=img
    rects=detect(dst,cascade)
    for x1,y1,x2,y2 in rects:
        #調整人臉截取的大小。橫向為x,縱向為y
        roi = dst[y1+10 :y2+20, x1+10 :x2 ]
        img_roi = roi
        re_roi = cv2.resize(img_roi, (size_m, size_n))
        
        #新的圖像存到data/image/jaffe_1
        f = "{}/{}".format("data/image", "jaffe_1")
        #print(f)
        if not os.path.exists(f):
            os.mkdir(f)
        #切割圖像路徑
        path=list.split(".")
        
        #新的圖像存到data/image/jaffe_1   並以jpg 為后綴名
        cv2.imwrite("{}/{}_{}.jpg".format(f,path[1],path[2]), re_roi)

原文:https://blog.csdn.net/SHAOYEZUIZUISHAUI/article/details/103301229

 

-


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM