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 类与元类的深度挖掘 II【经验】
May 06 Python
详解Python pygame安装过程笔记
Jun 05 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Python绘制的二项分布概率图示例
Aug 22 Python
python write无法写入文件的解决方法
Jan 23 Python
更新修改后的Python模块方法
Mar 03 Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 Python
python3调用windows dos命令的例子
Aug 14 Python
基于django传递数据到后端的例子
Aug 16 Python
python实现简单成绩录入系统
Sep 19 Python
python如何设置静态变量
Sep 07 Python
python打包生成so文件的实现
Oct 30 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
php之对抗Web扫描器的脚本技巧
2008/10/01 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
juqery 学习之四 筛选过滤
2010/11/30 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
python实现从字典中删除元素的方法
2015/05/04 Python
Python 中的 else详解
2016/04/23 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
pandas 时间格式转换的实现
2019/07/06 Python
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
单位在职证明范本
2014/01/09 职场文书
英文留学推荐信范文
2014/01/25 职场文书
个人委托书
2014/07/31 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
就业推荐表导师评语
2014/12/31 职场文书
亮剑观后感300字
2015/06/05 职场文书
销售会议开幕词
2016/03/04 职场文书
vue3获取当前路由地址
2022/02/18 Vue.js