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 相关文章推荐
简介Django中内置的一些中间件
Jul 24 Python
python常见排序算法基础教程
Apr 13 Python
Python使用filetype精确判断文件类型
Jul 02 Python
浅谈python可视化包Bokeh
Feb 07 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
Python类的继承用法示例
Jan 31 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
Python 处理文件的几种方式
Aug 23 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
python实现飞船大战
Apr 24 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
PHP 函数执行效率的小比较
2010/10/17 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
关于Python中异常(Exception)的汇总
2017/01/18 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
Python切片操作实例分析
2018/03/16 Python
python模拟表单提交登录图书馆
2018/04/27 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
Python 切分数组实例解析
2019/11/07 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
Python接口测试文件上传实例解析
2020/05/22 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
英国领先的电视购物零售商:Ideal World
2019/03/18 全球购物
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
最新奶茶店创业计划书
2014/01/25 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
博士论文答辩开场白
2015/06/01 职场文书
python常见的占位符总结及用法
2021/07/02 Python