Python 3.4下利用OpenCV对摄像头进行面部识别

发布时间:November 8, 2015 // 分类:代码 // 2 条评论

综合 Record Video With Python + OpenCV 3 on OSXA Quick Demo on Face Detection With Python and Opencv 3 两篇文章的内容。实现Python 3.4对OpenCV进行面部识别,在Windows 10下成功运行。不得不说,用了OpenCV,那是相当的简单。演示如下:

show.jpg

大半夜的没穿衣服,就拿汤唯演示吧(这话说得怎么有点怪怪的)

运行程序前需要前往Github下载OpenCV库到本地,并进行相应配置。如笔者下载到了C:\并重命名opencv-masteropencv-3.0.0。这一步非常重要,不然会报错。按键Q退出程序。代码如下:

import numpy as np
import cv2


# 模式参数
dir_path = "C:\\opencv-3.0.0\\data\\haarcascades" # 配置OpenCV路径
filename = "haarcascade_frontalface_default.xml" # 识别模式文件
model_path = dir_path + "\\" + filename


#人脸识别
def gface(image):
    # 创建 classifier
    clf = cv2.CascadeClassifier(model_path)

    # 设定灰度
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # 识别面部
    faces = clf.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.CASCADE_SCALE_IMAGE
    )

    #print("Found {0} faces!".format(len(faces)))

    # 画方框
    for (x, y, w, h) in faces:
        cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)

    return image


cap = cv2.VideoCapture(0) # 从摄像头中取得视频

# 获取视频播放界面长宽
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH) + 0.5)
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT) + 0.5)

# 定义编码器 创建 VideoWriter 对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Be sure to use the lower case
out = cv2.VideoWriter('output.mp4', fourcc, 20.0, (width, height))

while(cap.isOpened()):
    #读取帧摄像头
    ret, frame = cap.read()
    if ret == True:
        #输出当前帧
        frame=gface(frame)
        out.write(frame)

        cv2.imshow('My Camera',frame)

        #键盘按 Q 退出
        if (cv2.waitKey(1) & 0xFF) == ord('q'):
            break
    else:
        break

# 释放资源
out.release()
cap.release()
cv2.destroyAllWindows()

本文固定链接
https://www.ywlib.com/archives/41.html

标签
python, opencv, 面部识别

已有 2 条 关于 " Python 3.4下利用OpenCV对摄像头进行面部识别 "的评论.

  1. 紫色

    博主,有没有联系方式?邮箱QQ什么的,我最近在做人脸识别的课题,想请教一些问题。

    1. 这一块我也只是玩一玩。。高深的都不懂其实哈哈哈

添加新评论 »

分类
随机文章
最新文章
最近回复
  • typecho模板: 只调用随机文章的内容怎么操作啊?类似多思多金博主的你好污啊那种样子的
  • box: 好棒b( ̄▽ ̄)d
  • mi: /data/opkg update
  • alen chen: 我的是小米路由器mini ROM:開發版2.19.40
  • alen chen: 你好,看到你的文章如獲至寶,一舉解決了我多年想在小米路由器mini裡面安裝dlna的心願。一路...
  • hiicy: windows上最有效 最简单明了的方法!打电话!!
  • 梁兴健: 楼上好像都搞定了,只有我一个人报错吗,我是放在post.php文章下面,想显示随机文章的,Fa...
  • Jordan: Thanks!!!
  • Kent: 这一块我也只是玩一玩。。高深的都不懂其实哈哈哈
  • 紫色: 博主,有没有联系方式?邮箱QQ什么的,我最近在做人脸识别的课题,想请教一些问题。