opencv3.3 +python3.6人脸检测 + 人脸识别

    利用opencv进行人脸检测和人脸提取,在网上查到相关资料,人脸检测,需要引入opencv的一个专用包,也就是opencv中的CascadeClassifier类的detectMultiScale()方法,对于人脸提取,就是在此基础上使用图像剪切,将那一部分显示出来

import cv2 as cv
import numpy as np


def face_detect_demo() :
    gray = cv.cvtColor(src , cv.COLOR_BGR2GRAY)
    face_detector = \
        cv.CascadeClassifier\
            ("D:/opencv/sources/data/haarcascades/haarcascade_frontalface_alt_tree.xml")
    faces = face_detector.detectMultiScale(gray , 1.02 , 5)
    vis = src.copy()
    for x , y , w , h in faces :
        cv.rectangle(src , (x , y) , (x + w , y + h) , (255 , 0 , 255) , 2)
        roi_demo = vis[x : x + w , y : y + h]#人脸提取
        cv.imshow("roi_demo" , roi_demo)
    cv.imshow("result" , src)


src = cv.imread("D:/data/lena.jpg")
cv.namedWindow("input image" , cv.WINDOW_AUTOSIZE)
cv.namedWindow("result" , cv.WINDOW_AUTOSIZE)
cv.imshow("input image" , src)
face_detect_demo()
cv.waitKey(0)
cv.destroyAllWindows()


你可能感兴趣的:(opencv3.3 +python3.6人脸检测 + 人脸识别)