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实现带声音的摩斯码翻译实现方法
May 20 Python
python django事务transaction源码分析详解
Mar 17 Python
python opencv判断图像是否为空的实例
Jan 26 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
Python常见数据类型转换操作示例
May 08 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
Python中的延迟绑定原理详解
Oct 11 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
Pytest中skip和skipif的具体使用方法
Jun 30 Python
python基础之错误和异常处理
Oct 24 Python
聊聊Python String型列表求最值的问题
Jan 18 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
PHP设计模式之装饰者模式
2012/02/29 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
vue实现放大镜效果
2020/09/17 Javascript
vuex的使用步骤
2021/01/06 Vue.js
编写Python的web框架中的Model的教程
2015/04/29 Python
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
python 接口返回的json字符串实例
2018/03/27 Python
Form表单及django的form表单的补充
2019/07/25 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
Python3之外部文件调用Django程序操作model等文件实现方式
2020/04/07 Python
2013届毕业生求职信范文
2013/11/20 职场文书
新年联欢会主持词
2014/03/27 职场文书
电子信息工程自荐信
2014/05/26 职场文书
工地安全生产标语
2014/06/06 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
学校百日安全活动总结
2015/05/07 职场文书
余世维讲座观后感
2015/06/11 职场文书
高中团支书竞选稿
2015/11/21 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
关于Vue中的options选项
2022/03/22 Vue.js