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实现的二维码生成小软件
Jul 11 Python
跟老齐学Python之再深点,更懂list
Sep 20 Python
深入理解Javascript中的this关键字
Mar 27 Python
Python导出DBF文件到Excel的方法
Jul 25 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
解决Python安装后pip不能用的问题
Jun 12 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Django+boostrap 美化admin后台的操作
Mar 11 Python
如何基于Python实现word文档重新排版
Sep 29 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
Sep 29 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
laravel 获取某个查询的查询SQL语句方法
2019/10/12 PHP
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
Python的函数嵌套的使用方法
2014/01/24 Python
Python实现大文件排序的方法
2015/07/10 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
pyspark 随机森林的实现
2020/04/24 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
大学活动邀请函
2014/01/28 职场文书
英语教师个人总结
2015/02/09 职场文书
校园新闻稿范文
2015/07/18 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python