Python--基于OpenCV数据集的人脸定位和识别

2024-09-05 12:08

本文主要是介绍Python--基于OpenCV数据集的人脸定位和识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

就是调个库,没什么好说的。上代码:

事前准备:

  • python安装两个库。
pip install opencv-python
pip install opencv-contrib-python

到cv2文件夹下取出三个文件,复制到工作区:

  • haarcascade_frontalcatface.xml
  • haarcascade_frontalcatface_extended.xml
  • haarcascade_frontalface_default.xml

人脸定位:

import cv2 as cv
import numpy as np
from matplotlib import pyplot as pltdef face_detect_demo():gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)face_detector = cv.CascadeClassifier('D:/anaconda3/Lib/site-packages/cv2/data/haarcascade_frontalface_alt_tree.xml')faces = face_detector.detectMultiScale(gray, scaleFactor=1.008, minNeighbors=4, maxSize=(47, 47), minSize=(28 ,28))for x, y, w, h in faces:cv.rectangle(img, (x, y), (x+w, y+h), color=(0, 0, 255), thickness=2)cv.circle(img, center=(x+w//2, y+h//2), radius=w//2, color=(0, 255, 0), thickness=2)cv.imshow('result', img)img = cv.imread('test05.jpg')face_detect_demo()
cv.waitKey(4000)
cv.destroyAllWindows()

视频人脸定位:

import cv2 as cv
import numpy as np
from matplotlib import pyplot as pltdef face_detect_demo(img):gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)face_detector = cv.CascadeClassifier('../trainer/haarcascade_frontalface_default.xml')faces = face_detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=4, minSize=(30 ,30))for x, y, w, h in faces:cv.rectangle(img, (x, y), (x+w, y+h), color=(0, 0, 255), thickness=2)cv.circle(img, center=(x+w//2, y+h//2), radius=w//2, color=(0, 255, 0), thickness=2)cv.imshow('result', img)cap = cv.VideoCapture('../src/test06_Trim2.mp4')#save files
fps = 5
size = (int (cap.get(cv.CAP_PROP_FRAME_WIDTH)), int (cap.get(cv.CAP_PROP_FRAME_HEIGHT)))
videowrite = cv.VideoWriter('../result/result_1.mp4', cv.VideoWriter_fourcc('I', '4', '2', '0'), fps, size)while True:flag, frame = cap.read()if not flag:breakface_detect_demo(frame)videowrite.write(frame)if ord('q') == cv.waitKey(10):breakcv.destroyAllWindows()
cv.release()

效果:

 

打开摄像头,摄像头定位:

import cv2 as cv
import numpy as np
from matplotlib import pyplot as pltdef face_detect_demo(img):gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)face_detector = cv.CascadeClassifier('./data/haarcascade_frontalface_default.xml')faces = face_detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=4, minSize=(30 ,30))for x, y, w, h in faces:cv.rectangle(img, (x, y), (x+w, y+h), color=(0, 0, 255), thickness=2)cv.circle(img, center=(x+w//2, y+h//2), radius=w//2, color=(0, 255, 0), thickness=2)cv.imshow('result', img)#cap = cv.VideoCapture('../src/test06_Trim2.mp4')
cap = cv.VideoCapture(0)
#save files
fps = 5
size = (int (cap.get(cv.CAP_PROP_FRAME_WIDTH)), int (cap.get(cv.CAP_PROP_FRAME_HEIGHT)))
videowrite = cv.VideoWriter('../result/result_1.mp4', cv.VideoWriter_fourcc('I', '4', '2', '0'), fps, size)while True:flag, frame = cap.read()if not flag:breakface_detect_demo(frame)videowrite.write(frame)if ord('q') == cv.waitKey(10):breakcv.destroyAllWindows()
cv.release()

 

这篇关于Python--基于OpenCV数据集的人脸定位和识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138915

相关文章

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.