码迷,mamicode.com
首页 > 其他好文 > 详细

opencv之人脸识别

时间:2017-12-09 22:40:02      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:##   摄像头   pass   简单   int   load   人脸检测   tco   简单介绍   

最近在做一个类似于智能广告投放的项目,简单思路是利用opencv获取摄像头图像,然后调用接口或利用其他一些离线模型进行人脸属性识别,进而投放广告。本篇先简单介绍利用opecv进行人脸识别。

# -*- coding: utf-8 -*-

import cv2

cascPath = """C:\Users\Administrator\Downloads\opencv\sources
\data\haarcascades\haarcascade_frontalface_alt2.xml""" #分类器位置,这里改为你自己的位置
faceCascade = cv2.CascadeClassifier(cascPath) #定义分类器

# 打开视频捕获设备
video_capture = cv2.VideoCapture(0) 
while True:
    if not video_capture.isOpened():
        print(‘Unable to load camera.‘)
        pass

    # 读视频帧
    ret, frame = video_capture.read() ##读取一桢图像,前一个返回值是是否成功,后一个返回值是图像本身

    # 转为灰度图像
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 调用分类器进行人脸检测
    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        #flags=cv2.cv.CV_HAAR_SCALE_IMAGE
    )

    # 画矩形框
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
    #cv2.rectangle五个参数,图片名称、两个对角点坐标、颜色数组、线宽与直线只有一点不同就是输入的两坐标点不是起点和终点而是对角线的起点和终点。


    # 显示视频
    cv2.imshow(‘Video‘, frame)


    if cv2.waitKey(1) & 0xFF == ord(‘q‘):
        break


# 关闭摄像头设备
video_capture.release()

# 关闭所有窗口
cv2.destroyAllWindows()

opencv之人脸识别

标签:##   摄像头   pass   简单   int   load   人脸检测   tco   简单介绍   

原文地址:http://www.cnblogs.com/aloiswei/p/8012575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!