Python基于OpenCV实现人脸检测并保存

首先,我们需要安装Python和OpenCV库。前者可以在官网下载安装程序,后者可以使用pip命令进行安装,在命令行中运行以下命令即可:

pip install opencv-python

接下来的步骤,我们将分为以下三个部分进行:

1. 读取图像并进行人脸检测

我们将使用OpenCV中的CascadeClassifier类来检测人脸。在此之前,我们需要下载人脸检测器的分类器文件(.xml)并将其放置在项目目录中。

import cv2

# 加载人脸检测器分类器文件
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 读取图像
img = cv2.imread('image.jpg')

# 转换为灰度图像
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)
cv2.waitKey(0)
cv2.destroyAllWindows() 

在上述代码中,我们首先加载了人脸检测器分类器文件,并读取了一张图像。然后,我们将图像转换为灰度图像,这是因为人脸检测器通常需要处理灰度图像来提高检测率。接下来,我们使用CascadeClassifier类的detectMultiScale()方法检测人脸,并将检测结果保存在一个元组中。最后,我们在原图像上使用rectangle()方法标记出检测到的人脸,并将其显示出来。

2. 成功检测人脸后对图像进行操作

在检测到人脸后,我们可以根据具体需求对图像进行操作。例如,我们可以在人脸周围添加一个矩形框,并将处理后的图像保存到本地。

import cv2

# 加载人脸检测器分类器文件
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 读取图像
img = cv2.imread('image.jpg')

# 转换为灰度图像
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.imwrite('result.jpg', img)

在以上代码中,我们将原图像中检测到的人脸周围添加了一个蓝色矩形框,并将处理后的图像保存到了本地。

3. 检测并保存视频中的人脸

在检测和处理图像的基础上,我们还可以将其应用于视频中。下面的代码可以读取视频文件,检测并保存其中的人脸。

import cv2

# 加载人脸检测器分类器文件
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 打开摄像头或者读取视频文件
cap = cv2.VideoCapture(0)

# 定义视频编码器及输出文件名称
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
out = cv2.VideoWriter('output.avi', fourcc, 10.0, (640,480))

while True:
    # 读取一帧图像
    ret, frame = cap.read()

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

    # 进行人脸检测
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)

    # 在图像上标记出人脸
    for (x,y,w,h) in faces:
        cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)

    # 显示图像
    cv2.imshow('frame',frame)

    # 将处理后的图像保存到视频文件中
    out.write(frame)

    # 按下q键退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

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

注意,在以上代码中,我们使用了VideoWriter类来将处理后的图像保存为视频文件。运行程序时,按下q键可以退出循环。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基于OpenCV实现人脸检测并保存 - Python技术站

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

相关文章

  • python实现定时自动备份文件到其他主机的实例代码

    下面是 Python 实现定时自动备份文件到其他主机的攻略,包括两个完整的示例代码。 步骤一:安装必要的库 我们需要使用 paramiko 库来建立 SSH 连接,使用 schedule 库来实现定时任务。首先需要安装它们,可以使用 pip 命令来安装: pip install paramiko pip install schedule 步骤二:编写备份脚本…

    python 2023年5月19日
    00
  • 基于Python pip用国内镜像下载的方法

    基于Python pip使用国内镜像下载的方法,主要包含以下四个步骤: 1.设置镜像源 2.安装需要的库 3.升级已安装的库 4.卸载库 下面,我们一步一步详细讲解。 1. 设置镜像源 首先,我们需要设置pip的镜像源,以加快下载速度。常用的国内镜像源有清华大学、中国科技大学、中科院等。以清华大学的pypi镜像为例,设置步骤如下: 在命令行窗口或终端中,输入…

    python 2023年5月14日
    00
  • python中使用psutil查看内存占用的情况

    使用psutil库可以方便地查看Python程序的内存占用情况。下面是利用psutil查看内存占用的完整攻略: 步骤1:安装psutil库 在终端或命令行中输入以下命令安装psutil库: pip install psutil 步骤2:导入psutil库 在Python代码中导入psutil库,代码如下: import psutil 步骤3:使用psutil…

    python 2023年6月3日
    00
  • python3第三方爬虫库BeautifulSoup4安装教程

    Python3第三方爬虫库BeautifulSoup4安装教程 简介 BeautifulSoup是一个Python第三方库,专门用于从HTML和XML文件中提取数据。它提供了方便且易于使用的方法,使数据抓取更加便捷和高效。 安装步骤 步骤1:确保已经安装pip pip是Python的包管理工具,它可以方便地帮助我们安装和管理第三方库。打开终端(或CMD),运…

    python 2023年5月14日
    00
  • 用python将word文档合并实例代码

    下面是详细讲解“用python将word文档合并实例代码”的完整实例教程。 1. 环境准备 在使用python操作word文档之前,需要使用pip安装python-docx模块。 安装方法: 打开命令行窗口,输入以下命令: pip install python-docx 2. 实现代码 下面是用python将word文档合并的实现代码: import os …

    python 2023年5月13日
    00
  • python感知机实现代码

    接下来将为大家详细讲解“Python感知机实现代码”的完整攻略。 什么是感知机 感知机是二元线性分类模型,输入是向量,输出是标志所属的二元分类,常用于二元分类、多元分类和回归分析等领域。 感知机实现代码攻略 实现步骤 以下是Python实现感知机分类的步骤: 定义感知机模型的输入与输出维度。 定义感知机模型的参数:权重向量和偏置。 进行前向传播,计算感知机模…

    python 2023年5月19日
    00
  • Python restful框架接口开发实现

    Python是一种广泛使用的高级编程语言,在Web开发领域中应用广泛。当我们需要使用Python开发RESTful API时,可以使用Python的RESTful框架来简化开发流程,提高开发效率。下面是Python RESTful框架接口开发实现的完整攻略。 准备工作 在开始Python RESTful框架接口开发实现之前,需要进行一些准备工作。具体如下: …

    python 2023年5月13日
    00
  • python开发之字符串string操作方法实例详解

    Python开发之字符串String操作方法实例详解 字符串(string) 在 Python 中是一个非常常用的数据类型。在本文中,我们将详细探讨 Python 字符串的操作方法,包括字符串读取、截取、查找、替换、拼接等常用操作。 字符串读取 在 Python 中,我们可以通过索引下标(index)的方式来读取字符串中的字符。字符串下标从0开始,逐一向后递…

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