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下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
python利用paramiko连接远程服务器执行命令的方法
Oct 16 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
Oct 11 Python
分析经典Python开发工程师面试题
Apr 08 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
python实现while循环打印星星的四种形状
Nov 23 Python
python实现人机猜拳小游戏
Feb 03 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
python 实现单例模式的5种方法
Sep 23 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
深入PHP数据加密详解
2013/06/18 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP创建XML接口示例
2019/07/04 PHP
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
python实现发送邮件及附件功能
2021/03/02 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
金宝贝童装官网:Gymboree
2016/08/31 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
幼儿园家长评语
2014/02/10 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
学生违反校规检讨书
2014/10/28 职场文书
三好学生评语大全
2014/12/29 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript