Opencv人脸识别之发送QQ邮箱
文章目录
- 前言
- 一、前戏准备
- 1.先开通邮箱SMTP服务
- 1、进入设置(以QQ邮箱为例)
- 2、点击账户
- 3、下滑,开启方框内的功能(注意:需要发送信息申请,要收取短信费用)
- 2.安装 face_recognition 人脸识别库
- 二、使用步骤
- 1.引入库
- time库 、smtplib库、email库都是内置库需要安装
- 2.人脸识别并保存图像
- 3.配置邮箱
- 3.发送邮箱
- 完整代码
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
终于放暑假了,不用在为那些头大的课程烦恼了。不过你的考试好像不及格,啊哈哈哈哈哈。现在要闭关学习一些有趣的知识。顺便把一些觉得有意思的文档分享给大家,大家可以随意修改。
一、前戏准备
你要下载好并且配置好相关环境。
1.先开通邮箱SMTP服务
1、进入设置(以QQ邮箱为例)
2、点击账户
3、下滑,开启方框内的功能(注意:需要发送信息申请,要收取短信费用)
2.安装 face_recognition 人脸识别库
这里我就直接用别人的链接:作者:1941s
二、使用步骤
1.引入库
time库 、smtplib库、email库都是内置库需要安装
import time
import cv2
import face_recognition
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart""" 实现流程
1、通过opencv调用摄像头拍照保存图像到本地
2、使用email库构建邮件内容,保存的图像以附件插入邮件内容
3、使用smtplib库发送到指定邮件
"""
2.人脸识别并保存图像
def GetPicture():# 获取摄像头cap = cv2.VideoCapture(0)while True:# 读取摄像头数据success, img = cap.read()# 转换格式cv2.cvtColor(img, cv2.COLOR_BGR2RGB)# 获取人脸位置face_locations = face_recognition.face_locations(img)# 输出人脸位置print(face_locations)# 判断人数if len(face_locations) > 0:# 提取人脸位置top, rigth, bottom, left = face_locations[0]# 通过opencv画人脸框cv2.rectangle(img, (left, top), (rigth, bottom), (0, 255, 0), 2)# 保存人脸到本地cv2.imwrite("./output/img.jpg", img)# 退出break# 释放数据cap.release()cv2.destroyAllWindows()
3.配置邮箱
def SetEmail():# 设置总的邮件体对象,对象类型为mixedmsg = MIMEMultipart("mixed")# 邮件的标题msg['Subject'] = "测试 emil test"# 邮件的发件人及收件人信息msg['From'] = from_emailmsg['To'] = To_email# 构造文本内容text_info = "他动我电脑了,一不小心被我抓住了。"# 正文转码text_sub = MIMEText(text_info, 'plain', 'utf-8')msg.attach(text_sub)# 构造图片附件image_file = open(r'./output/img.jpg', 'rb').read()image = MIMEImage(image_file)# 设置图像附件可直接预览image.add_header('Content-ID', '<image1>')# 如果不加下边这行代码的话,会在收件方方面显示乱码的bin文件,下载之后也不能正常打开,这个地方也可以对文件重命名image["Content-Disposition"] = 'attachment; filename="people.png"'msg.attach(image)# 返回对象return msg.as_string()
3.发送邮箱
def SendEmail(msg):try:# 声明SMTP对象server = smtplib.SMTP()# 设置smtp服务器地址server.connect('smtp.qq.com')# 根据自己的账号登录目标服务器(自己的邮箱地址和邮箱授权码)server.login(from_email, from_email_password)# 调用对象中的方法,发送邮件到目标地址server.sendmail(from_email, To_email, msg)# 延时time.sleep(2)# 退出server.quit()print('发送邮件成功!!!')except Exception as e:print('发送邮件失败!!!')print(e)
完整代码
import time
import cv2
import face_recognition
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart# 配置邮箱及密码
from_email = "你的@qq.com" # 发送端账号
from_email_password = "你的授权码" # 发送端账号密码
To_email = "接收对方的邮箱" # 接收端账号# ############## 人脸识别并保存图像 ############################
def GetPicture():# 获取摄像头cap = cv2.VideoCapture(0)while True:# 读取摄像头数据success, img = cap.read()# 转换格式cv2.cvtColor(img, cv2.COLOR_BGR2RGB)# 获取人脸位置face_locations = face_recognition.face_locations(img)# 输出人脸位置print(face_locations)# 判断人数if len(face_locations) > 0:# 提取人脸位置top, rigth, bottom, left = face_locations[0]# 通过opencv画人脸框cv2.rectangle(img, (left, top), (rigth, bottom), (0, 255, 0), 2)# 保存人脸到本地cv2.imwrite("./output/img.jpg", img)# 退出break# 释放数据cap.release()cv2.destroyAllWindows()# ############ 配置邮箱 #################################
def SetEmail():# 设置总的邮件体对象,对象类型为mixedmsg = MIMEMultipart("mixed")# 邮件的标题(随意改动)msg['Subject'] = "测试 emil test"# 邮件的发件人及收件人信息msg['From'] = from_emailmsg['To'] = To_email# 构造文本内容text_info = "他动我电脑了,一不小心被我抓住了。"# 正文转码text_sub = MIMEText(text_info, 'plain', 'utf-8')msg.attach(text_sub)# 构造图片附件image_file = open(r'./output/img.jpg', 'rb').read()image = MIMEImage(image_file)# 设置图像附件可直接预览image.add_header('Content-ID', '<image1>')# 如果不加下边这行代码的话,会在收件方方面显示乱码的bin文件,下载之后也不能正常打开,这个地方也可以对文件重命名image["Content-Disposition"] = 'attachment; filename="people.png"'msg.attach(image)# 返回对象return msg.as_string()# ############ 发送邮箱 #################################
def SendEmail(msg):try:# 声明SMTP对象server = smtplib.SMTP()# 设置smtp服务器地址server.connect('smtp.qq.com')# 根据自己的账号登录目标服务器(自己的邮箱地址和邮箱授权码)server.login(from_email, from_email_password)# 调用对象中的方法,发送邮件到目标地址server.sendmail(from_email, To_email, msg)# 延时time.sleep(2)# 退出server.quit()print('发送邮件成功!!!')except Exception as e:print('发送邮件失败!!!')print(e)if __name__ == '__main__':GetPicture()msg = SetEmail()SendEmail(msg)
总结
结果来了:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
Opencv人脸识别之发送QQ邮箱相关推荐
- 基于python opencv人脸识别的员工考勤系统
WorkAttendanceSystem 一个基于opencv人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,python课设期间. 源代码详细解释请关注微信公众号: ...
- 【转】OpenCV人脸识别
转自:https://blog.csdn.net/learning_tortosie/article/details/85121576 写在前面 这是Adrian Rosebrock博客的第二篇翻译, ...
- opencv 全志_移植opencv人脸识别到全志A10开发板上 +linux3.0内核
移植opencv人脸识别 libz: zlib-1.2.3 libjpeg: jpegsrc.v6b libpng: libpng-1.2.18 libyasm: yasm-0.7. ...
- python人脸照片分类_Python OpenCV 人脸识别(一)
前面介绍了Numpy模块,下面再介绍一个OpenCV模块,就基于这两个库看一下当下很火的人工智能是如何实现的,我们介绍几个:人脸识别(当下非常火的).音视频操作等等.今天先介绍一下静态图片的人脸识别, ...
- C# WinForm 使用SMTP协议发送QQ邮箱验证码
文章目录 前言 功能实现步骤 一.获取QQ邮箱授权码 二.功能界面 三.创建发送邮箱验证码的类 四.在From1中调用类中的函数,实现功能 前言 在程序设计中,发送验证码是常见的一个功能,用户在注 ...
- SpringBoot实现发送QQ邮箱验证码
SpringBoot实现发送QQ邮箱验证码 打开qq邮箱官网 点击设置 找到开启服务:POP3/SMTP 然后复制给的密授权码(记住) 导入maven依赖坐标 <!--qq邮箱--> &l ...
- 图像识别——(java)opencv(人脸识别简单实现)
人脸识别 package com.acts.opencv.demo;import javax.servlet.http.HttpServletRequest; import javax.servlet ...
- Python+OpenCV人脸识别签到考勤系统(新手入门)
Python+OpenCV人脸识别签到考勤系统(新手入门) 前言 项目效果图 项目需要的环境 编译器 辅助开发QT-designer 项目配置 代码部分 核心代码 项目目录结构 后记 正式版改进 项目 ...
- python opencv人脸识别考勤系统的完整源码
这篇文章主要介绍了python opencv人脸识别考勤系统的完整源码,本文给大家介绍的非常详细,希望对大家的学习或工作具有一定的参考借鉴价值. 代码如下: import wx import wx.g ...
- openCV人脸识别简单案例
1 基础 我们使用机器学习的方法完成人脸检测,首先需要大量的正样本图像(面部图像)和负样本图像(不含面部的图像)来训练分类器.我们需要从其中提取特征.下图中的 Haar 特征会被使用,就像我们的卷积核 ...
最新文章
- 改变完成工作的方式压力的效果
- python开发需要掌握哪些知识-Python基础进阶需要掌握哪些知识点?
- 机器学习笔记: 聚类 模糊聚类与模糊层次聚类(论文笔记 Fuzzy Agglomerative Clustering :ICAISC 2015)
- Java核心技术点之动态代理
- go mysql 查询语句_01 MySQL-初识MySQL-查询语句的执行流程-Go语言中文社区
- php二维码存放json数据_PHP生成及获取JSON文件的方法
- 聊聊互联网秋招总结 经验分享
- 025_MapReduce样例Hadoop TopKey算法
- java程序流程图_跟我学java编程—绘制流程图其实很简单
- 西门子224XP源码,包括pcb,原理图,224xp源码
- 【原文件】辞海(第六版彩图本) pdf
- 计算机教室联想系统管理员密码,联想怎么清除bios超级管理员密码的方法
- 直播app系统源码,自定义弹框的简单写法Demo
- 解决Google Chrome添加快捷方式图标模糊
- 在word文档中从第3页开始编页码的方法
- go日志库log/zap/logrus
- DMOZ分类目录对网站推广的作用
- OpenCV 录制视频
- 咕咚要和keep们刚正面,闪电战还是持久战?
- HYSBZ 2251 外星联络