美文网首页
opencv进行人脸识别

opencv进行人脸识别

作者: 簡潔_Jaycee | 来源:发表于2020-02-19 18:17 被阅读0次

一、对照片进行人脸识别

1.代码

import cv2

img = cv2.imread('image',1)

face_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')

faces = face_engine.detectMultiScale(img,scaleFactor=1.3,minNeighbors=5)

for (x,y,w,h) in faces:

    img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

cv2.imshow('img',img)

cv2.waitKey(0)

cv2.destroyAllWindows()

cv2.imwrite('new.jpg',img)


2.效果图


二、利用摄像头进行实时人脸识别

1.代码

import cv2

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')

eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades +'haarcascade_eye.xml')

cap = cv2.VideoCapture(0)

while (True):

# 获取摄像头拍摄到的画面

    ret, frame = cap.read()

faces = face_cascade.detectMultiScale(frame, 1.3, 5)

img = frame

for (x, y, w, h)in faces:

# 画出人脸框,蓝色,画笔宽度微

        img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)

# 框选出人脸区域,在人脸区域而不是全图中进行人眼检测,节省计算资源

        face_area = img[y:y + h, x:x + w]

eyes = eye_cascade.detectMultiScale(face_area)

# 用人眼级联分类器引擎在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表

        for (ex, ey, ew, eh)in eyes:

# 画出人眼框,绿色,画笔宽度为1

            cv2.rectangle(face_area, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 1)

# 实时展示效果画面

    cv2.imshow('frame2', img)

# 每5毫秒监听一次键盘动作

    if cv2.waitKey(5) &0xFF ==ord('q'):

break

# 最后,关闭所有窗口

cap.release()

cv2.destroyAllWindows()

2.效果图


相关文章

网友评论

      本文标题:opencv进行人脸识别

      本文链接:https://www.haomeiwen.com/subject/fnkfmxtx.html