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读取csv文件示例(python操作csv)
Mar 11 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
python numpy格式化打印的实例
May 14 Python
Python数据类型之List列表实例详解
May 08 Python
Python3.8中使用f-strings调试
May 22 Python
PyCharm安装Markdown插件的两种方法
Jun 24 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
python数据预处理方式 :数据降维
Feb 24 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
python3将变量输入的简单实例
Aug 19 Python
matplotlib对象拾取事件处理的实现
Jan 14 Python
Python 线程池模块之多线程操作代码
May 20 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
Composer设置忽略版本匹配的方法
2016/04/27 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
JavaScript自定义超时API代码实例
2020/04/30 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
python实现计算倒数的方法
2015/07/11 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
Python入门之后再看点什么好?
2018/03/05 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
普通大学毕业生自荐信范文
2014/02/23 职场文书
授权委托书格式模板
2014/04/03 职场文书
小组口号大全
2014/06/09 职场文书
教师节慰问信
2015/02/15 职场文书
PHP解决高并发问题
2021/04/01 PHP
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
javascript的var与let,const之间的区别详解
2022/02/18 Javascript