Python - OpenCV实现摄像头人脸识别(亲测版)

要使用Python 3和OpenCV进行摄像头人脸识别,您可以按照以下步骤进行操作:

0.安装OpenCV软件

去官网直接下载安装即可,如果是C++使用OpenCV,需要使用编译源码并配置环境变量。

1.安装OpenCV库

在命令行中输入以下命令:

复制代码
pip install opencv-python

2.准备人脸检测器

使用OpenCV的人脸检测器可以检测出图像中的人脸。在Python中,您可以使用以下代码来加载人脸检测器:

复制代码
import cv2  
  
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

在这里,您需要提供XML文件的路径(方法在第四步),该文件包含用于检测人脸的特征。OpenCV提供了多个预训练的人脸检测器,您可以选择其中任何一个。

3.打开摄像头

使用OpenCV的VideoCapture类可以打开摄像头。以下是一个示例代码:

复制代码
import cv2  
  
cap = cv2.VideoCapture(0)

在这里,cap是一个VideoCapture对象,它表示打开的摄像头。0表示第一个摄像头。

4.循环读取帧并处理

使用OpenCV的read()方法从摄像头读取帧。以下是一个示例代码:

复制代码
import cv2  
  
cap = cv2.VideoCapture(0)  
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')  
  
while True:  
    ret, frame = cap.read()  
    if ret:  
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  
        faces_rects = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)  
        for (x, y, w, h) in face_rects:  
            cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)  
        cv2.imshow('Face Detection', frame)  
        if cv2.waitKey(1) & 0xFF == ord('q'):  
            break  
    else:  
        break
# 使用release()方法释放摄像头,并使用destroyAllWindows()方法关闭所有窗口
cap.release()  
cv2.destroyAllWindows()

在这里,需要用到haarcascade_frontalface_default.xml文件,这个文件在安装好的opencv目录下找到。

我们使用detectMultiScale()方法检测每一帧中的所有人脸,并在每张脸上绘制一个矩形。我们还使用imshow()方法显示结果。waitKey()方法等待用户按下键盘上的任意键,然后我们使用break语句退出循环。

综上所述,以上是使用Python 3和OpenCV进行摄像头人脸识别的基本步骤。您可以根据自己的需求进行修改和扩展。

相关推荐
网域小星球2 分钟前
C 语言从 0 入门(十五)|综合小项目:菜单交互与简易功能实现
c语言·开发语言·交互
架构师老Y7 分钟前
011、消息队列应用:RabbitMQ、Kafka与Celery
python·架构·kafka·rabbitmq·ruby
网域小星球12 分钟前
C 语言从 0 入门(十六)|动态内存管理:malloc /free/calloc /realloc 精讲
c语言·开发语言·free·malloc·动态内存
枫叶林FYL13 分钟前
【Python高级工程与架构实战】项目四:生产级LLM Agent框架:基于PydanticAI的类型安全企业级实现
人工智能·python·自然语言处理
龙腾AI白云14 分钟前
多模大模型应用实战:智能问答系统开发
python·机器学习·数据分析·django·tornado
雪的季节19 分钟前
qt信号槽跨线程使用时候的坑
java·开发语言·qt
AI应用实战 | RE24 分钟前
011、向量数据库入门:Embeddings原理与ChromaDB实战
开发语言·数据库·langchain·php
Hommy8824 分钟前
【开源剪映小助手】配置与部署
python·开源·aigc·剪映小助手
V搜xhliang024632 分钟前
基于¹⁸F-FDG PET/CT的深度学习-影像组学-临床模型预测非小细胞肺癌脉管侵犯的价值
大数据·人工智能·python·深度学习·机器学习·机器人
XuecWu333 分钟前
原生多模态颠覆Scaling Law?解读语言“参数需求型”与视觉“数据需求型”核心差异
人工智能·深度学习·算法·计算机视觉·语言模型