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+Django在windows下的开发环境配置图解
Nov 11 Python
python操作mysql中文显示乱码的解决方法
Oct 11 Python
实例说明Python中比较运算符的使用
May 13 Python
python实现数值积分的Simpson方法实例分析
Jun 05 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
在Python中append以及extend返回None的例子
Jul 20 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
多个python文件调用logging模块报错误
Feb 12 Python
Python更改pip镜像源的方法示例
Dec 01 Python
python实现简单石头剪刀布游戏
Oct 24 Python
python中 .npy文件的读写操作实例
Apr 14 Python
django如何自定义manage.py管理命令
Apr 27 #Python
Python爬虫之爬取二手房信息
七个Python必备的GUI库
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
You might like
php json_encode值中大括号与花括号区别
2013/09/30 PHP
js 居中漂浮广告
2010/03/21 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
python中循环语句while用法实例
2015/05/16 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Django--权限Permissions的例子
2019/08/28 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Python yield的用法实例分析
2020/03/06 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
爱护公共设施的标语
2014/06/24 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
单位婚育证明范本
2014/11/21 职场文书
小学校本教研总结
2015/08/13 职场文书
导游词之山海关
2019/12/10 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS