IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 使用opcv人脸检测 -> 正文阅读

[人工智能]使用opcv人脸检测

系统开发环境

  • Windows11
  • Python 3.8
  • Pycharm 2021.3 社区版

所需环境库

  • numpy==1.22.1
  • opencv-contrib-python==4.5.5.62
  • opencv-python==4.5.5.62

安装环境库

直接使用 pip 安装即可,使用 openCV 进行开发建议使用低版本 Python 不容易遇到各种奇怪的问题,Windows 系统可以安装多版本 Python,注意在安装时不要勾选添加到 Path 即可,在创建虚拟环境时,直接使用不同版本的解释器即可创建。
不同版本Python共存

代码实现

import cv2
import numpy as np

#人脸识别分类器
faceCascade = cv2.CascadeClassifier(
    r"C:\Users\TOM\.virtualenvs\smart-home\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml")
#人眼识别分类器
eyesCascade = cv2.CascadeClassifier(
    r"C:\Users\TOM\.virtualenvs\smart-home\Lib\site-packages\cv2\data\haarcascade_eye.xml")

#调用本地摄像头
cap = cv2.VideoCapture(0)
flag = True
while flag:
    #read返回两个值,第一个值True代表获取到数据,后一个值为摄像头数据流
    flag, img = cap.read()
    #翻转图像
    img = cv2.flip(img, 1)
    # 转换为灰度图像
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    #人脸检测,返回值为人脸的box参数,左上角坐标(x,y),矩形框的长、宽共4个参数
    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.2,
        minNeighbors=5,
        minSize=(32,32)
    )
    # 在检测人脸的基础上检测眼睛
    for (x, y, w, h) in faces:
        fac_gray = gray[y: (y + h), x: (x + w)]
        result = []
        eyes = eyesCascade.detectMultiScale(fac_gray, 1.3, 2)

        # 眼睛坐标的换算,将相对位置换成绝对位置
        for (ex, ey, ew, eh) in eyes:
            result.append((x + ex, y + ey, ew, eh))

    for(x, y, w, h) in faces:
        cv2.rectangle(img, (x,y), (x+w, y+h), (0,255,0), 2)

    cv2.imshow('video', img)

    hot_key = cv2.waitKey(1)
    #判断按下的热键是否为Esc
    if hot_key == 27:
        break
#释放摄像头资源
cap.release()
#销毁窗口
cv2.destroyWindow()

这里需要注意,分类器的 xml 文件一般在 openCV 库安装目录 cv2 的 data 文件夹内,找不到路径的可以安装 everything 用 cv2 作为关键字进行检索。
在这里插入图片描述
在这里插入图片描述
将代码中的路径替换为你自己的路径即可

实现效果

在这里插入图片描述

后续工作计划

  • 人脸识别
  • 人脸录入与管理
  • 语音留言系统
  • 图形化界面

参考网址:

代码参考
图像翻转

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-07 13:43:59  更:2022-02-07 13:45:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/29 21:34:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码