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列表与元组详解实例
Nov 01 Python
python编写爬虫小程序
May 14 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
tensorflow获取变量维度信息
Mar 10 Python
python使用turtle库与random库绘制雪花
Jun 22 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
浅谈Python的list中的选取范围
Nov 12 Python
python 用下标截取字符串的实例
Dec 25 Python
Pyqt5实现英文学习词典
Jun 24 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
Python使用微信接入图灵机器人过程解析
Nov 04 Python
python for循环赋值问题
Jun 03 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
PHP中图片等比缩放的实例
2013/03/24 PHP
php实用代码片段整理
2016/11/12 PHP
PHP7变量处理机制修改
2021/03/09 PHP
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
在python中的socket模块使用代理实例
2014/05/29 Python
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
python tornado使用流生成图片的例子
2019/11/18 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
《中彩那天》教学反思
2014/02/22 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
军训个人总结
2015/03/03 职场文书
公司放假通知范文
2015/04/14 职场文书
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript