python + opencv 实现人脸检测
2017-09-24 13:59
1011 查看
可以用opencv 的库函数来实现人脸检测
#coding=utf-8 import numpy as np import cv2 import time import sys, getopt from video import create_capture from common import clock, draw_str 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 def draw_rects(img, rects, color):#画框函数 for x1, y1, x2, y2 in rects: cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) if __name__ == '__main__':#主函数 args = {} #读入分类器 cascade_fn = args.get('--cascade', "haarcascade_frontalface_alt.xml") # cascade_fn = args.get('--cascade', "haarcascade_righteye_2splits.xml")#yanjing # cascade_fn = args.get('--cascade', "haarcascade_fullbody.xml") eyes = args.get('--eyesed-cascade', "haarcascade_eye.xml") cascade = cv2.CascadeClassifier(cascade_fn) eyesed = cv2.CascadeClassifier(eyes) print cascade_fn #捕获摄像头视频流 cap = cv2.VideoCapture(0) while True: #延时 time.sleep(0.10) # img = cv2.imread("haha2.jpg") # print img.shape ret,img = cap.read()#读入每一帧图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#灰度化 t = clock()#计时 rects = detect(gray, cascade)#检测人脸 vis = img.copy() draw_rects(vis, rects, (0, 255, 0)) # if not eyesed.empty(): # for x1, y1, x2, y2 in rects: # roi = gray[y1:y2, x1:x2] # vis_roi = vis[y1:y2 , x1:x2] # subrects = detect(roi.copy(), eyesed) # draw_rects(vis_roi, subrects, (255, 0, 0)) subrects = detect(gray, eyesed) draw_rects(vis, subrects, (255, 0, 0)) dt = clock() - t # print dt draw_str(vis, (20, 20), 'time: %.1f ms' % (dt*1000)) cv2.imshow('facedetect', vis) if cv2.waitKey(5) == 27: break cv2.destroyAllWindows()
下面是效果图:
一共三个函数:detect函数 、draw_rects函数、main函数
在主函数里面读取视频的每一帧,可以直接处理读入人炼狱眼睛的的分类器,然后每一帧检测人脸与眼睛,检测到则画方框
相关文章推荐
- python 调用摄像头,基于opencv 的人脸检测实现
- Python基于OpenCV实现视频的人脸检测
- Python利用OpenCV实现人脸检测
- python+OpenCv+dlib实现人脸68个关键点检测并标注
- 关于Python+Opencv实现人脸检测的实验笔记(调用摄像头篇)
- python结合opencv实现人脸检测与跟踪
- OpenCV + python 实现人脸检测(基于照片和视频进行检测)
- 【OpenCV】简单的Python实现人脸检测
- python进阶之python-opencv实现人脸检测
- 【Python+OpenCV】实现检测场景内是否有物体移动,并进行人脸检测抓拍
- 关于Python+Opencv实现人脸检测的实验笔记(调用图片文件篇)
- Python基于OpenCV实现视频的人脸检测
- 25行 Python 代码实现人脸检测——OpenCV 技术教程
- 基于OpenCV的人脸检测——C++和Python实现
- python下通过dlib和opencv实现人脸对齐(包括关键点检测和仿射变换)
- python结合opencv实现人脸检测与跟踪
- 基于python OpenCV实现动态人脸检测
- python利用OpenCV2实现人脸检测
- VS2010+Opencv2.4.4+MFC实现人脸检测与识别
- OpenCV中人脸检测代码实现