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脚本设置系统时间的两种方法
Feb 21 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
Python装饰器原理与用法分析
Apr 30 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
python gdal安装与简单使用
Aug 01 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
Python中bisect的使用方法
Dec 31 Python
Python requests设置代理的方法步骤
Feb 23 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
python使用建议技巧分享(三)
Aug 18 Python
python和anaconda的区别
May 06 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
js实现数字滚动特效
2019/12/16 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
使用python实现baidu hi自动登录的代码
2013/02/10 Python
python实现电脑自动关机
2018/06/20 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python函数不定长参数使用方法解析
2019/12/14 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
python实现密码强度校验
2020/03/18 Python
python requests.get带header
2020/05/05 Python
Python如何获取文件路径/目录
2020/09/22 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
医护人员英文求职信范文
2013/11/26 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python