python版opencv摄像头人脸实时检测方法

yizhihongxing

以下是Python版OpenCV摄像头人脸实时检测方法的完整攻略,包括两个示例:

Python版OpenCV摄像头人脸实时检测方法

步骤1:导入必要的库

需要导入必要的库,包括cv2和numpy。可以使用以下代码导入这些库:

import cv2
import numpy as np

步骤2:加载人脸检测器

需要加载人脸检测器。可以使用以下代码加载人脸检测器:

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

在这个示例中,我们使用cv2.CascadeClassifier()方法加载名为haarcascade_frontalface_default.xml的人脸检测器。

步骤3:打开摄像头

需要打开摄像头。可以使用以下代码打开摄像头:

cap = cv2.VideoCapture(0)

在这个示例中,我们使用cv2.VideoCapture()方法打开摄像头。

步骤4:实时检测人脸

需要实时检测人脸。可以使用以下代码实时检测人脸:

while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in faces:
        cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    cv2.imshow('img',img)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break
cap.release()
cv2.destroyAllWindows()

在这个示例中,我们使用while循环实时读取摄像头的图像。我们使用cv2.cvtColor()方法将图像转换为灰度图像。我们使用face_cascade.detectMultiScale()方法检测人脸。我们使用cv2.rectangle()方法在图像上绘制矩形框。最后,我们使用cv2.imshow()方法显示图像,并使用cv2.waitKey()方法等待按键。如果按下ESC键,我们使用cap.release()方法释放摄像头,使用cv2.destroyAllWindows()方法关闭所有窗口。

示例1:实时检测人脸

以下是实时检测人脸的示例:

import cv2
import numpy as np

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)

while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in faces:
        cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    cv2.imshow('img',img)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break
cap.release()
cv2.destroyAllWindows()

在这个示例中,我们使用while循环实时读取摄像头的图像。我们使用cv2.cvtColor()方法将图像转换为灰度图像。我们使用face_cascade.detectMultiScale()方法检测人脸。我们使用cv2.rectangle()方法在图像上绘制矩形框。最后,我们使用cv2.imshow()方法显示图像,并使用cv2.waitKey()方法等待按键。如果按下ESC键,我们使用cap.release()方法释放摄像头,使用cv2.destroyAllWindows()方法关闭所有窗口。

示例2:保存检测到的人脸图像

以下是保存检测到的人脸图像的示例:

import cv2
import numpy as np

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)

while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in faces:
        cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = img[y:y+h, x:x+w]
        cv2.imwrite("face.jpg", roi_color)
    cv2.imshow('img',img)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break
cap.release()
cv2.destroyAllWindows()

在这个示例中,我们使用while循环实时读取摄像头的图像。我们使用cv2.cvtColor()方法将图像转换为灰度图像。我们使用face_cascade.detectMultiScale()方法检测人脸。我们使用cv2.rectangle()方法在图像上绘制矩形框。我们使用cv2.imwrite()方法保存检测到的人脸图像。最后,我们使用cv2.imshow()方法显示图像,并使用cv2.waitKey()方法等待按键。如果按下ESC键,我们使用cap.release()方法释放摄像头,使用cv2.destroyAllWindows()方法关闭所有窗口。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python版opencv摄像头人脸实时检测方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Linux安装Pytorch1.8GPU(CUDA11.1)的实现

    下面是Linux安装PyTorch 1.8 GPU(CUDA 11.1)的完整攻略: 1. 安装CUDA和cuDNN 首先,需要安装NVIDIA的CUDA和cuDNN。可以通过以下步骤安装: 下载并安装最新版本的CUDA Toolkit。可以通过cuda官网下载相应版本的CUDA Toolkit,并按照官方文档执行安装步骤。 下载cuDNN。可以在cuDNN…

    python 2023年5月13日
    00
  • Python anaconda安装库命令详解

    Python Anaconda安装库命令详解 Anaconda是一个流行的Python发行版,它包含了许多常用的Python库和工具。在使用Anaconda时,可以使用conda命令来安装、更新和管理Python库。本文将详细讲解conda`命令的使用方法,并提供两个示例。 安装库 使用conda命令安装Python库非常简单。只需要终端中输入以下命令: c…

    python 2023年5月14日
    00
  • Python编程不要再使用print调试代码了

    Python编程不要再使用print调试代码了 在Python编程中,调试代码是一个非常重要的过程。在过去,我们通常使用print语句来调试代码。但是,这种方法有时会很麻烦,尤其是在调试大型代码库时。在本攻略中,我们将介绍一些替代print语句的方法,以帮助您更有效地调试Python代码。 为什么不要使用print语句? 使用print语句调试代码的主要问题…

    python 2023年5月14日
    00
  • Python使用numpy实现BP神经网络

    以下是关于“Python使用numpy实现BP神经网络”的完整攻略。 BP神经网络简介 BP神经网络是一种常见的工神经网络,用于解决分类和回归问题。BP神经网络由输入层、隐藏层和输出层组成,其中隐藏层可以有多。BP神经网络通过反向传播算法来训练模型,以优化模型的权重和偏置。 使用numpy实现BP神经网络 可以使用NumPy库实现BP神经网络。下面是一个示例…

    python 2023年5月14日
    00
  • numpy库reshape用法详解

    NumPy库reshape用法详解 NumPy是Python中一个重要的科学计算库,提供了高效的维数组和各种派生对象,以于计算的各种函数。在NumPy中,reshape()是一个重要的函数,它用于改变数组的形状。本文将深入解NumPy库reshape的用法,包括reshape的定义、创建、转换和等知识。 reshape的定义 在NumPy中,reshape(…

    python 2023年5月13日
    00
  • Python能做什么

    Python能做什么 Python是一种高级编程语言,具有简单易学、易读易写、功能强大等特点。Python可以用于种不同应用程序,包括Web开发、数据分析、人工智能、机器学习、自然语言处理、游戏开等。 Web开发 Python可以用于Web开发,包括Web框架、Web服务器、Web爬虫等。常用的Python Web框架包括Django、Flask、Torna…

    python 2023年5月14日
    00
  • 解决usageerror: line magic function “%%time” not found问题

    在Jupyter Notebook中,可以使用“%%time”魔法命令来测量代码块的执行时间。但是,有时会出现“usageerror: line magic function “%%time” not found”错误,这通常是由于未正确导入IPython库导致的。以下是解决“usageerror: line magic function “%%time” …

    python 2023年5月14日
    00
  • 使用LibTorch进行C++调用pytorch模型方式

    使用LibTorch进行C++调用pytorch模型是一种常见的操作。下面将对如何使用LibTorch进行C++调用pytorch模型方式进行详细的讲解。 1. 安装LibTorch 首先需要从官网 https://pytorch.org/ 下载与你的CUDA版本和操作系统匹配的LibTorch库。 下载完成后,将下载的文件解压到你想要安装的目录。然后,在运…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部