python实现调用摄像头并拍照发邮箱


Posted in Python onApril 27, 2021

项目地址:

https://github.com/flygaga/camera

思路

1、通过opencv调用摄像头拍照保存图像到本地

2、用email库构造邮件内容,保存图片以附件形式插入邮件内容

3、用smtplib库发送邮件到指定邮箱

4、生成 .exe 文件

5、设置开机自启(每次开机自动运行,启动相机,拍下照片发送到指定邮箱)

导入工具

import cv2 # pip install opencv-python -i {指定镜像源} 控制摄像头

from email.mime.image imort MIMEImage #用来构造邮件内容的库

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

import smtplib #发送邮件

编译环境

系统:Windows10

软件:Miniconda3-latest-Windows-x86_64

模块:opencv-python smtplib numpy email pyinstaller

生成exe文件

pyinstaller -F -w path/camera.py

设置开机自启

1.右击exe 创建快捷方式

2.win+r 输入以下命令 shell:startup 点击确定打开一个文件夹

3.将生成的快捷文件复制到打开的文件中,下次开机exe程序就会自动启动

python代码实现调用摄像头,并拍照发送邮件

主要代码

camera.py

import cv2
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# import smtplib #发送邮件
import smtplib
from smtplib import SMTP
import time

host = 'smtp.qq.com' #邮箱的接口
port = '25' #端口
pwd = 'neelrhh88******ch' #授权码
sender = '邮箱地址' #发送方
receiver = "邮箱地址" #接收方

path = r'./' #图像保存路径
images = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime())

def GetPicture():
    """
    拍照保存图像
    """
    #创建一个窗口camera
    cv2.namedWindow('camera',1) #'1' 表示窗口不能随意拖动
    #调用摄像头
    cap = cv2.VideoCapture(0)
    ret,frame = cap.read() #读取摄像头内容
    cv2.imwrite(path+images+".jpg",frame)  #保存到磁盘


    #释放摄像头
    cap.release()
    #关闭窗口
    cv2.destroyWindow("camera")

def SetMsg():
    '''
    设置邮件格式
    :return:
    '''
    msg = MIMEMultipart('mixed')
    #标题
    msg['Subject'] = '电脑已开机'
    msg['From'] = sender
    msg['To'] = receiver
    #邮件正文内容
    text = '电脑已开机,请查收图片确认是否为本人'
    text_plain = MIMEText(text,'plain','utf-8') #正文转码
    msg.attach(text_plain)

    #图片
    SendImageFile = open(path+images+'.jpg','rb').read()
    image = MIMEImage(SendImageFile)
    image['Content-Disposition'] = 'attachment;filename="people.jpg"'
    msg.attach(image)
    return msg.as_string()

def SendEmail(msg):
    '''
    发送邮件
    :msg :邮件内容
    :return
    '''
    try:
        smtp = smtplib.SMTP_SSL(host,port) #创建一个邮件服务
        # smtp.connect(host)
        smtp.login(sender,pwd)
        smtp.sendmail(sender,receiver,msg)
        time.sleep(3)
        smtp.quit() #退出邮件服务
    except smtplib.SMTPException as e:
        print("e")
#实现开机自启动
#打包实现启动  例:exe 

if __name__ == '__main__':
    # 1.拍照保存
    GetPicture()
    # 2. 设置邮件格式
    msg = SetMsg()
    # 3. 发送邮件
    SendEmail(msg)

以上就是python实现调用摄像头并拍照发邮箱的详细内容,更多关于python 调用摄像头的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python数据类型学习笔记
Jan 13 Python
Python处理Excel文件实例代码
Jun 20 Python
python笔记:mysql、redis操作方法
Jun 28 Python
Python使用Tkinter实现机器人走迷宫
Jan 22 Python
python中的闭包函数
Feb 09 Python
Python中collections模块的基本使用教程
Dec 07 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 Python
Pytorch: 自定义网络层实例
Jan 07 Python
Python的pygame安装教程详解
Feb 10 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
Apr 22 Python
python利用文件时间批量重命名照片和视频
Feb 09 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
遍历指定目录下的所有目录和文件的php代码
2011/11/27 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
详解Python中的测试工具
2019/06/09 Python
python面试题之列表声明实例分析
2019/07/08 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
大学生入党推荐书范文
2014/05/17 职场文书
企业文化理念标语
2014/06/10 职场文书
教师考核表个人总结
2015/02/12 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
电工生产实习心得体会
2016/01/22 职场文书
入团申请书格式
2019/06/20 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
详解java如何集成swagger组件
2021/06/21 Java/Android
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android