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 05 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
Python中内建函数的简单用法说明
May 05 Python
Python2中文处理纪要的实现方法
Mar 10 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
pytorch 预训练模型读取修改相关参数的填坑问题
Jun 05 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
php建立Ftp连接的方法
2015/03/07 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
Python set常用操作函数集锦
2017/11/15 Python
Python iter()函数用法实例分析
2018/03/17 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
2014最新离职证明范本
2014/09/12 职场文书
预备党员对照检查材料思想汇报
2014/09/24 职场文书
单位单身证明样本
2014/10/11 职场文书
舞出我人生观后感
2015/06/16 职场文书
联村联户简报
2015/07/21 职场文书
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python