基于opencv的实现简单的人脸识别功能
文章目录
- 基于opencv的实现简单的人脸识别功能
- 1. 环境配置
- 2.基本项目代码:
- 3.onerror:在运行时遇到了一个问题:
- 4.实现视频检测功能
- 5.实现视频截图
- 更好的阅读体验可以点击下方链接
基于opencv的实现简单的人脸识别功能
使用opencv实现人脸识别
1. 环境配置
在opencv官网下载opencv,在pycharm上安装opencv-python
官网上下载的opencv后安装,位置如图:
2.基本项目代码:
import cv2 as cv# define a function to check the img
def face_detect_demo():gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)# 使用opencv自带的已经训练好的分类器# 训练器位置就是在官网内的下载的opencv自带已训练的模型face_detect = cv.CascadeClassifier(r'D:\opencv_install\opencv\sources\data\haarcascades\haarcascade_frontalface_alt2.xml')'''detectMultiScale:参数说明:第一个参数为源图片,第二个参数为缩放倍数(太小可能会运行较慢)第三个参数为比较次数,第四个参数为0,第五个参数为最小人脸大小,第六个为最大人脸大小'''face = face_detect.detectMultiScale(gray)for x, y, w, h in face:cv.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)cv.imshow('result', img)# load the img
# 这里填写图片路径
img = cv.imread('photo/target.png')# change the img size
img = cv.resize(img, (400, 200))face_detect_demo()# let the img convert to gray (convert color)
# img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)# drew a square box / rectangle 矩形
# the params is srcImg, 绘制的图形的起始点和长宽,the color of rectangle, thickness of rectangle
# cv.rectangle(img, (10, 10, 100 + 50, 100 + 50), (0, 0, 255), 1)# drew a circle
# the params is srcImg, center of the circle, radius of the circle, the color of the circle, thickness
# cv.circle(img, (50, 50), 50, (255, 0, 0), 2)# show this img
# cv.imshow('photo1', img)# while enter the 'q', the program will exit
while True:if ord('q') == cv.waitKey(0):break
cv.destroyAllWindows()
import cv2 as cvdef check_face():# convert the color to graygray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)deal_result = cv.CascadeClassifier(r'D:\opencv_install\opencv\sources\data\haarcascades\haarcascade_frontalface_alt2.xml')face = deal_result.detectMultiScale(gray, 1.05, 5, 0, (20, 20), (100, 100))for x, y, w, h in face:cv.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)cv.imshow('result', img)# load the img
img = cv.imread('photo/121.jpg')
img = cv.resize(img, (821, 548))
check_face()
# cv.imshow("123", img)while True:if ord('q') == cv.waitKey(0):break
3.onerror:在运行时遇到了一个问题:
Traceback (most recent call last):File "D:\PyCharm_Code\com\OpenCV\Python\[多人脸识别.py](http://xn--gmqt7fd7h038b99k.py)", line 22, in <module>check_face()File "D:\PyCharm_Code\com\OpenCV\Python\[多人脸识别.py](http://xn--gmqt7fd7h038b99k.py)", line 11, in check_faceface = deal_result.detectMultiScale(gray, 1, 5, 0, (20, 20), (100, 100))cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1389: error: (-215:Assertion failed) scaleFactor > 1 && _image.depth() == CV_8U in function 'cv::CascadeClassifierImpl::detectMultiScale'造成的原因为:face = deal_result.detectMultiScale(gray, 1, 5, 0, (20, 20), (100, 100)) detectMultiScale函数的第二个参数为1,将1改成大于1的参数即可**(****建议使用默认值****)**
关于这个函数(detectMultiScale)在网上找到的一些解释:
detectMultiScale函数含义
4.实现视频检测功能
import cv2 as cvdef check_face(img):img_copy = imgimg = cv.cvtColor(img, cv.COLOR_BGR2GRAY)face_detect = cv.CascadeClassifier(r'D:\opencv_install\opencv\sources\data\haarcascades\haarcascade_frontalface_alt.xml')face_result = face_detect.detectMultiScale(img)for x, y, w, h in face_result:cv.rectangle(img_copy, (x, y), (x + w, y + h), (0, 0, 255), 2)cv.imshow('result', img_copy)# 调用摄像头 0为默认的摄像头
cap = cv.VideoCapture(0)# 读取一个视频作为判断
# cap = cv.VideoCapture('video路径')# 读取一个网络视频作为判断
# cap = cv.VideoCapture('video地址')# 第一个参数表示有值的时候为True,第二个参数为帧的内容img
# cap.read()while True:flag, frame = cap.read()if not flag:breakcheck_face(frame)# 100ms 检测一次if ord('q') == cv.waitKey(100):breakcv.destroyAllWindows()
cap.release()
5.实现视频截图
import cv2 as cvcap = cv.VideoCapture(0)
flag = 1
num = 1
while cap.isOpened():ret_flag, vShow = cap.read()cv.imshow('show', vShow)k = cv.waitKey(1) & 0xFF # 按键监听if k == ord('s'):cv.imwrite("photo/" + str(num) + ".jpg", vShow) # 进行图片保存print("success")print("-----------------")num += 1elif k == ord(' '):breakcap.release()
cv.destroyAllWindows()
更好的阅读体验可以点击下方链接
点击下方链接
基于opencv的实现简单的人脸识别功能
或者复制到浏览器
https://www.wolai.com/VnkJcNBkrV5SrCTiKA6fi
基于opencv的实现简单的人脸识别功能相关推荐
- 基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕实战
基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕实战 基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕 前言 运行python环境 ...
- 【毕业设计_课程设计】基于opencv、dilb的员工人脸识别考勤系统
文章目录 0 项目说明 1 需求分析 2 总体设计 3 详细设计 4 效果展示 5 实验心得 6 项目源码 7 最后 0 项目说明 基于opencv.dilb的员工人脸识别考勤系统 提示:适合用于课程 ...
- 基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1)
基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1) 这个是登录界面: 部分代码如下: // An highlighted block from 文件1 import * from PyQt ...
- opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...
" 本项目是一个基于OpenCV开源库使用python语言程序实现人脸检测的项目,该项目将从[项目基础知识](即人脸识别的基本原理).[项目实践](人脸识别所需要的具体步骤及其python程 ...
- python3+opencv+tkinter开发简单的人脸识别小程序
学校里有门图像处理的课程最终需要提交一个图像处理系统, 正好之前对于opencv有些了解,就简单的写一个人脸识别小程序吧 效果图如下 笔者IDE使用Pycharm,GUI编程直接使用内置的tkinte ...
- [机器学习]基于OpenCV实现最简单的数字识别
http://blog.csdn.net/jinzhuojun/article/details/8579416 本文将基于OpenCV实现简单的数字识别.这里以游戏Angry Birds为例,通过以下 ...
- 基于 opencv tenserflow2.0 实战 CNN 人脸识别锁定与解锁 win10 屏幕
代码参考:https://download.csdn.net/download/weixin_55771290/87430422 前言 windows hello 的低阶板本,没有 Windows h ...
- opencv入门——实现简单的人脸识别
一.导库: pip install opencv-python 二.下载特征数据: 可以去github下载. 链接:https://pan.baidu.com/s/1TtFMYH889GdZfchEQ ...
- 基于OpenCV的图片和视频人脸识别
目录
- 基于百度AI开放平台的人脸识别
文章目录 前言 人脸识别流程图 一.注册账号 二.创建应用 三.下载SDK文件 四.创建工具类 五.创建用于人脸识别的网页 1.引入css文件 2.创建注册按钮 3.创建模态框,用于捕捉人脸 4.引入 ...
最新文章
- Linux07-OpenSSH
- RTP timestamp与帧率及时钟频率的关系
- 顶部对齐css表单,vertical-align 表单元素垂直对齐的解决方法
- Json转换值类型字段为空字符串时报错问题
- 牛客网_PAT乙级1007_A除以B (20)
- 使用 Recipe 安装 SAP Commerce Cloud
- Angular Component class属性初始化和构造函数执行的先后顺序
- 缓存淘汰、缓存穿透、缓存击穿、缓存雪崩、数据库缓存双写一致性
- VC中对象的序列化与文件I/O
- 物联网建设中通讯互联层的终极解决方案
- oracle 查出所有空表,Oracle查看某个用户上的所有空表
- Java怎么实现大的map_关于Java中的ConcurrentHashMap的实现原理有大神可以详细介绍下吗?...
- Linux 下使用Postgre中的命令,要使用postgres这个用户
- 【渝粤教育】国家开放大学2019年春季 2328仓储与配送管理 参考试题
- windows10 + centos7 双系统
- ctfshow菜狗杯wp
- SQL获取当前月份的第一天
- 一些Mac OS X的使用技巧
- 方便记忆的电话号码C语言
- TCP状态转换以及TIMEWAIT和FIN_WAIT_2状态
热门文章
- [转][职业导航]作为初涉销售的年轻人,你是否具备核心竞争力?
- [1160]C语言实验——某年某月的天数
- DRM in Android详解--转
- 彻底阻止、禁用google chrome浏览器自动更新、升级
- 2021-08-29 网安实验-网络协议栈渗透测试之DDOS攻击之CC攻击
- 【华人学者风采】忻获麟 加州大学欧文分校
- 江在川上曰:vue-Router学习笔记
- 光敏二极管的工作原理
- Ceph rgw中的元数据组织形式及存储结构分析
- ppt流程图箭头分叉_箭头循环图ppt模板_PPT结构图制作中箭头跟着目标走的技巧_ppt箭头流程图模板_ppt箭头循环图...