Opencv——Python人脸识别demo

安装

环境:python3.6.5

opencv版本:3.4.1.15

扩展包版本:3.4.1.15

 

 最好开一个虚拟环境去安装。什么是虚拟环境?一句话说就是为了防止一个环境时,依赖冲突。从而开辟的另一个副环境。创建虚拟环境方法:我直接在pycharm上新建项目时可以直接选择。其他创建方式自行百度。

还不懂虚拟环境的话直接移步这里

人脸识别代码

import cv2

if __name__ == '__main__':
    img = cv2.imread("3.jpg")
    img = cv2.resize(img, None, fy=0.5, fx=0.5)
    face_data = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
    faces = face_data.detectMultiScale(img)
    for x, y, w, h in faces:
        cv2.rectangle(img, pt1=(x, y), pt2=(x + w, y + h), color=(0, 0, 255))
    cv2.imshow("co", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

 效果图:

打马赛克代码

import cv2
import numpy as np

if __name__ == '__main__':
    img = cv2.imread("3.jpg")
    img = cv2.resize(img, None, fy=0.5, fx=0.5)
    face_data = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
    faces = face_data.detectMultiScale(img)
    for x, y, w, h in faces:
        mask = None
        mask = img[y:y+h, x:x+w]
        mask = mask[::6, ::6]
        mask = np.repeat(mask, 6, axis=0)
        mask = np.repeat(mask, 6, axis=1)
        img[y:y+h, x:x+w] = mask[:h, :w]
    cv2.imshow("co", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

效果图

 

 视频中人脸识别代码

import cv2

if __name__ == '__main__':
    cap = cv2.VideoCapture(0)
    while cap.isOpened():
        ret, img = cap.read()
        face_data = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
        faces = face_data.detectMultiScale(img)
        for x, y, w, h in faces:
            cv2.rectangle(img, pt1=(x, y), pt2=(x + w, y + h), color=(0, 0, 255))
        cv2.imshow("video", img)
        if cv2.waitKey(10) == ord('q'):
            break
    cv2.destroyAllWindows()

重点

使用github中opencv别人训练好的haarcascade_frontalface_alt.xml。

视频相当于一张一张照片

opencv中颜色排序是BGR

如果想要修改人脸识别时准确度,可以调整detectMultiScale方法中scaleFactor默认1.1和minNeighbors默认3

猜你喜欢

转载自blog.csdn.net/wai_58934/article/details/125962957