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 Pandas找到缺失值的位置方法
Apr 12 Python
详解Python中的分组函数groupby和itertools)
Jul 11 Python
Python3.5运算符操作实例详解
Apr 25 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
python之mock模块基本使用方法详解
Jun 27 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
Python如何脚本过滤文件中的注释
May 27 Python
Python celery原理及运行流程解析
Jun 13 Python
sklearn的predict_proba使用说明
Jun 28 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
php面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
Python字符串替换实例分析
2015/05/11 Python
Django中对数据查询结果进行排序的方法
2015/07/17 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
Python装饰器用法示例小结
2018/02/11 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
导师评语大全
2014/04/26 职场文书
党小组推荐意见
2015/06/02 职场文书
领导新年致辞2016
2015/07/29 职场文书
服务行业标语口号
2015/12/26 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB
Python各协议下socket黏包问题原理
2022/04/12 Python