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 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
python面向对象_详谈类的继承与方法的重载
Jun 07 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
python模块和包的应用BASE_PATH使用解析
Dec 14 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
python对数组进行排序,并输出排序后对应的索引值方式
Feb 28 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
python lambda 表达式形式分析
Apr 03 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
angular 组件通信的几种实现方式
2018/07/13 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
利用Python开发实现简单的记事本
2016/11/15 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Django框架实现的分页demo示例
2019/05/25 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
linux面试相关问题
2012/08/11 面试题
初中生物教学反思
2014/01/10 职场文书
英语教师求职信
2014/06/16 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server