文章目录

  • 前言
  • 一、前戏准备
    • 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邮箱相关推荐

  1. 基于python opencv人脸识别的员工考勤系统

    WorkAttendanceSystem 一个基于opencv人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,python课设期间. 源代码详细解释请关注微信公众号: ...

  2. 【转】OpenCV人脸识别

    转自:https://blog.csdn.net/learning_tortosie/article/details/85121576 写在前面 这是Adrian Rosebrock博客的第二篇翻译, ...

  3. opencv 全志_移植opencv人脸识别到全志A10开发板上 +linux3.0内核

    移植opencv人脸识别 libz:    zlib-1.2.3 libjpeg:   jpegsrc.v6b libpng:   libpng-1.2.18 libyasm:   yasm-0.7. ...

  4. python人脸照片分类_Python OpenCV 人脸识别(一)

    前面介绍了Numpy模块,下面再介绍一个OpenCV模块,就基于这两个库看一下当下很火的人工智能是如何实现的,我们介绍几个:人脸识别(当下非常火的).音视频操作等等.今天先介绍一下静态图片的人脸识别, ...

  5. C# WinForm 使用SMTP协议发送QQ邮箱验证码

    文章目录 前言 功能实现步骤 一.获取QQ邮箱授权码 二.功能界面 三.创建发送邮箱验证码的类 四.在From1中调用类中的函数,实现功能 前言   在程序设计中,发送验证码是常见的一个功能,用户在注 ...

  6. SpringBoot实现发送QQ邮箱验证码

    SpringBoot实现发送QQ邮箱验证码 打开qq邮箱官网 点击设置 找到开启服务:POP3/SMTP 然后复制给的密授权码(记住) 导入maven依赖坐标 <!--qq邮箱--> &l ...

  7. 图像识别——(java)opencv(人脸识别简单实现)

    人脸识别 package com.acts.opencv.demo;import javax.servlet.http.HttpServletRequest; import javax.servlet ...

  8. Python+OpenCV人脸识别签到考勤系统(新手入门)

    Python+OpenCV人脸识别签到考勤系统(新手入门) 前言 项目效果图 项目需要的环境 编译器 辅助开发QT-designer 项目配置 代码部分 核心代码 项目目录结构 后记 正式版改进 项目 ...

  9. python opencv人脸识别考勤系统的完整源码

    这篇文章主要介绍了python opencv人脸识别考勤系统的完整源码,本文给大家介绍的非常详细,希望对大家的学习或工作具有一定的参考借鉴价值. 代码如下: import wx import wx.g ...

  10. openCV人脸识别简单案例

    1 基础 我们使用机器学习的方法完成人脸检测,首先需要大量的正样本图像(面部图像)和负样本图像(不含面部的图像)来训练分类器.我们需要从其中提取特征.下图中的 Haar 特征会被使用,就像我们的卷积核 ...

最新文章

  1. 改变完成工作的方式压力的效果
  2. python开发需要掌握哪些知识-Python基础进阶需要掌握哪些知识点?
  3. 机器学习笔记: 聚类 模糊聚类与模糊层次聚类(论文笔记 Fuzzy Agglomerative Clustering :ICAISC 2015)
  4. Java核心技术点之动态代理
  5. go mysql 查询语句_01 MySQL-初识MySQL-查询语句的执行流程-Go语言中文社区
  6. php二维码存放json数据_PHP生成及获取JSON文件的方法
  7. 聊聊互联网秋招总结 经验分享
  8. 025_MapReduce样例Hadoop TopKey算法
  9. java程序流程图_跟我学java编程—绘制流程图其实很简单
  10. 西门子224XP源码,包括pcb,原理图,224xp源码
  11. 【原文件】辞海(第六版彩图本) pdf
  12. 计算机教室联想系统管理员密码,联想怎么清除bios超级管理员密码的方法
  13. 直播app系统源码,自定义弹框的简单写法Demo
  14. 解决Google Chrome添加快捷方式图标模糊
  15. 在word文档中从第3页开始编页码的方法
  16. go日志库log/zap/logrus
  17. DMOZ分类目录对网站推广的作用
  18. OpenCV 录制视频
  19. 咕咚要和keep们刚正面,闪电战还是持久战?
  20. HYSBZ 2251 外星联络

热门文章

  1. 分页虚拟存储管理——页面置换算法例题
  2. C语言基础丨运算符之条件运算符(七)
  3. Clickhouse优点 缺点 / Doris 优点 缺点
  4. iphonex适配游戏_Unity+iPhoneX适配方案
  5. SSB数据集导入ClickHouse
  6. 常用 javascript广告代码
  7. 8.10 网络编程——客户端从服务器中下载文件 TFTP协议
  8. 好用的函数在线绘图工具
  9. 野人岛java游戏,生存战争之独闯野人岛
  10. Python3对Excel表格操作(写入、追加)