简单的Python人脸识别系统
时间:2022-07-27
本文章向大家介绍简单的Python人脸识别系统,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
案例一 导入图片
思路: 1.导入库 2.加载图片 3.创建窗口 4.显示图片 5.暂停窗口 6.关闭窗口
# 1.导入库
import cv2
# 2.加载图片
img = cv2.imread('a.png')
# 3.创建窗口
cv2.namedWindow('window 1 haha')
# 4.显示图片
cv2.imshow('window 1',img)
# 5.暂停窗口
cv2.waitKey(0)
# 6.关闭窗口
cv2.destroyAllWindows()
案例二 在图片上添加人脸识别
思路: 1.导入库 2.加载图片 3.加载人脸模型 4.调整图片灰度 5.检查人脸 6.标记人脸 7.创建窗口 8.显示图片 9.暂停窗口 10.关闭窗口
# 1.导入库
import cv2
# 2.加载图片
img = cv2.imread('a.png')
# 3.加载人脸模型,opencv官网下载
face = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 4.调整图片灰度:没必要识别颜色,灰度可以提高性能
gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
# 5.检查人脸
faces = face.detectMultiScale(gray)
# 6.标记人脸for (x,y,w,h) in faces:
# 里面有4个参数 1.写图片 2.坐标原点 3.识别大小 4.颜色 5.线宽
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),4)
# 7.创建窗口
cv2.namedWindow('window 1 haha')
# 8.显示图片
cv2.imshow('window 1', img)
# 9.暂停窗口
cv2.waitKey(0)
# 10.关闭窗口
cv2.destroyAllWindows()
案例三 调用摄像头
思路: 1.导入库 2.打开摄像头 3.获取摄像头实时画面 4.释放资源 5.关闭窗口
# 1.导入库
import cv2
# 2.打开摄像头
capture = cv2.VideoCapture(0)
# 3.获取摄像头实时画面
cv2.namedWindow('camera')
while True:
#3.1 获取摄像头的帧画面
ret,frame = capture.read()
#3.2 显示图片(渲染画面)
cv2.imshow('window 1',frame)
#3.3 暂停窗口
if cv2.waitKey(5) & 0xFF == ord('q'):
break
# 4.释放资源
capture.release()
# 5.关闭窗口
cv2.destroyAllWindows()
案例四 摄像头识别人脸
思路: 1.导入库 2.加载人脸模型 3.打开摄像头 4.创建窗口 5.获取摄像头实时画面 6.释放资源 7.关闭窗口
# 1.导入库
import cv2
# 2.加载人脸模型
face = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 3.打开摄像头
capture = cv2.VideoCapture(0)
# 4.创建窗口cv2.namedWindow('window 1')
# 5.获取摄像头实时画面
while True:
# 5.1 获取摄像头的帧画面
ret,frame = capture.read()
# 5.2 图片灰度调整
gray = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
# 5.3 检查人脸
faces = face.detectMultiScale(gray)
# 5.4 标记人脸
for (x, y, w, h) in faces:
# 里面有4个参数 1.写图片 2.坐标原点 3.识别大小 4.颜色 5.线宽
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 4)
# 5.5 显示图片
cv2.imshow('camera',frame)
# 5.6 暂停窗口
if cv2.waitKey(5) & 0xFF == ord('q'):
break
# 6.释放资源
capture.release()
# 7.关闭窗口
cv2.destroyAllWindows()
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 深入Node.js的模块加载机制,手写require函数
- Redux异步解决方案之Redux-Thunk原理及源码解析
- MySQL设计与优化
- Elasticsearch学习笔记
- 《springboot实战》
- 360全国大学生信安技术大赛记录
- gh0st源码分析与远控的编写(四)
- 记一次Elasticsearch优化总结
- unix环境高级编程(上)-文件篇
- php webshell下直接反弹shell(不借助任何其他语言)
- XssHtml – 基于白名单的富文本XSS过滤类
- unix环境高级编程(下)-高级IO和进程间通信篇
- mybatis原理,配置介绍及源码分析
- web.py使用不当可能造成代码执行
- 《redis设计与实现》1-数据结构与对象篇