微信搜索关注“咖啡遇上代码”公众号,查看更多
OpenCV是开源的计算机视觉库,实现了很多图像处理和计算机视觉方面的通用算法。下面主要OpenCV中的内置算法来实现人脸检测与人脸识别。
人脸检测
流程
-
通过OpenCV自带的级联分类器来加载人脸检测的相关文件haarcascade_frontalface_default.xml(Windows版路径为opencv目录下的\build\etc\haarcascades\)
-
对图像进行灰度化等预处理
-
通过detectMultiScale函数完成对指定图片中的人脸进行检测(函数返回的为脸位置信息)
-
通过rectangle函数绘制出人脸位置
代码
import cv2 as cv
import numpy as np
def face_detect(image):
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
face_detector = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
faces = face_detector.detectMultiScale(gray, 1.02, 20)
for x, y, w, h in faces:
cv.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
cv.imshow("face_detect", image)
def video_face_detect():
capture = cv.VideoCapture(0)
while True:
r