Python控制自己的手机摄像头拍照,并把照片自动发送到邮箱

news2025/7/7 16:55:12

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学Python时刻~

今天这个案例,就是控制自己的摄像头拍照,

并且把拍下来的照片,通过邮件发到自己的邮箱里。

想完成今天的这个案例,只要记住一个重点:你需要一个摄像头

思路

通过opencv调用摄像头拍照保存图像本地

email库构造邮件内容,保存的图像以附件形式插入邮件内容

smtplib库发送邮件到指定邮箱

代码展示

工具导入

import time
import cv2  # pip install opencv-python -i 镜像源网址
from email.mime.image import MIMEImage  # 用来构造邮件内容的库
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib  # 发送邮件

调用摄像头,保存图片

拍照呢,是用手机的摄像头

软件用的是:IP摄像头(安卓),

因为在同一个局域网内,打开APP,里面出现的网址就是摄像头的地址

def GetPicture():
    """
    拍照保存图像
    :return:
    """
    # 创建一个窗口
    cv2.namedWindow('camera', 1)
    # 调用摄像头   IP摄像头APP
    video = "http://admin:admin@192.168.3.32:8081/video"
    cap = cv2.VideoCapture(video)
    while True:
        success, img = cap.read()
        cv2.imshow("camera", img)
        # 按键处理
        key = cv2.waitKey(10)
        if key == 27:
            # esc
            break
        if key == 32:
            # 空格
            fileaname = 'frames.jpg'
            cv2.imwrite(fileaname, img)

    # 释放摄像头
    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('D:/控制摄像头拍照并发送邮件/frames.jpg', 'rb').read()
    image = MIMEImage(SendImageFile)

    # 将收件人看见的附件照片名称改为people.png.
    image['Content-Disposition'] = 'attachment; filename = "people.png"'
    msg.attach(image)
    return msg.as_string()

邮件端口设置

授权码可以在这里领取

# 授权码
pwd = "******"   # 最好写自己的

# 服务器接口
host = 'smtp.163.com'
port = 25

sender = 'XXXX@163.com' # 最好写自己的
receiver = 'XXXX@qq.com' # 最好写自己的

发送邮件功能

def SendEmail(msg):
    """
    发送邮件
    :param msg:邮件内容
    :return:
    """
    smtp = smtplib.SMTP()
    smtp.connect(host,port=25)
    smtp.login(sender, pwd)
    smtp.sendmail(sender, receiver, msg)
    time.sleep(2)
    smtp.quit()

进行封装

if __name__ == '__main__':
    # 1.拍照保存
    GetPicture()
    # 2.设置邮件格式
    msg = SetMsg()
    # 3.发送邮件
    SendEmail(msg)

运行代码,演示效果
先拍照

发送到了邮箱


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

小伙伴们在学习Python的过程中,有时候不知道怎么学,从哪里开始学。

那么对于这些大兄弟们,我准备了大量的免费视频教程,数百本PDF电子书籍,以及各种案例源代码!

源码、资料点击 蓝色字体 自取 ,我都放在这里了。

宁外给大家推荐一个好的教程:

【48小时搞定全套教程!你和大佬只有一步之遥【python教程】


尾语 💝

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,博主要一下你们的三连呀(点赞、评论、收藏),不要钱的还是可以搞一搞的嘛~

不知道评论啥的,即使扣个6666也是对博主的鼓舞吖 💞 感谢 💐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/9400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSDN的MD编辑器【写作技巧】

CSDN的MD编辑器【写作技巧】在线LaTeX公式的编辑器快捷键,结合快捷键提高效率写作技巧在线LaTeX公式的编辑器 推荐去https://www.latexlive.com/在线LaTeX公式编辑器 将写好的公式代码复制过来。 然后复制在CSDN编辑器里面前后加上符合$就行了 前后加两个该符合就会…

Java环境安装即配置

一、java1.8的安装步骤 1 安装目录创建java文件夹 在想要安装java的目录下创建一个java文件夹,不能出现特殊符号和汉字、空格等 2 java文件夹内创建jdk和jre Java安装需要两部分,一个jdk一个jre 所以在java文件夹中创建两个文件夹 3 解压安装包 通过百度网盘分享的文件&#…

【论文精读3】MVSNet系列论文详解-P-MVSNet

P-MVSNet全名为“P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo”,名字当中反映了论文的核心模块即基于学习方法的分块匹配置信聚合模块,乍一看有点难理解,但看完本文肯定很清楚啦。 本文是MVSNet系…

mysql 数据库使用分享(多图解析)

1、大体流程 1.1 一些概念 1.1.1 RDBMS 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,类似excel 1.1.2 OLAP 和 OLTP OLTP(Online transactionprocessing):在线/联机 事务 处理。主要是对数据库中的数据…

PTA:字符串加密

输入一个原始字符串(长度小于80),然后输入一个5位的数字字符串作为加密密钥,对原始字符串中的每个字符根据其位置(对5取模)变换为加上数字字符串中的数字的字符。如输入原始字符串student,然后输…

Linux学习-36-文件系统管理-硬盘结构

10 Linux文件系统管理 之前在安装Linux的时候已经对 Linux 的分区方法和文件系统进行了介绍。不过那种分区方法是在安装系统的同时使用图形界面进行分区,如果添加了一块硬盘,那么当然要有不重新安装系统就可以分区的方法。文件系统即分区:原…

通达信接口进行二次编程开发步骤

大家都知道通达信接口是比较流行的快速通达信数据excel接口,能够提供多家券商,包括通达信数据excel接口、量化回测平台等。 通达信接口API接口说明(部分) 今天小编主要讲一下,关于通达信接口进行二次编程开发步骤如下…

【Linux】基本指令合集

1、ls 指令 功能: 显示当前目录下的所以子目录和文件 常用选项: -a:显示目录下的所以文件和以 . 开头的隐藏文件 -l:查看文件,ls -l等价于ll -R:显示所以子目录下的文件 -t:以时间排序 举例: …

PyCharm 的初始设置

目标 1、恢复 PyCharm 的初始设置 2、第一次启动 PyCharm/ 3、新建一个 Python 项目 4、设置 PyCharm 的字体显示 5、PyCharm 的升级以及其他 6、PyCharm 的官方网站地址是: PyCharm: the Python IDE for Professional Developers by JetBrains 01. 恢复 Py…

PMP有用吗,PMP含金量,如何转型项目经理?

先说一句,pmp是有用的,含金量也挺高的,也可以转型项目经理的,我再分别说明一下。 1、PMP有用么? 从本质来说,应该是pmp学习项目管理有没有用。 参加PMP认证与考试的过程是一个系统学习和巩固项目管理知识…

小白速点,计算机的存储规则你知道多少

计算机的存储规则 以前的认知 ​ 我们知道计算机中所有的文件都是存储在硬盘上的。当我们在编辑一个文档的时候,点击了保存按钮,那么文件中所有的数据都会保存在硬盘上。 但是他是怎么存储的呢?咱们就需要来学习一下。 计算机的二进制 ​…

三驾马车、四大赛道,元宇宙如何领跑数字经济?

进入2022年,全球互联网巨头继续加快布局元宇宙步伐,国内互联网企业也争相申请注册元宇宙相关商标,抢占数字经济发展先机。 党的十八大以来,发展数字经济逐渐上升为国家战略。多名业内权威人士表示,元宇宙或将引领全球数字经济发展,亟须尽快出台政策,破解制约元宇宙发展的法律…

隐式神经表示做超分:Local Texture Estimator for Implicit Representation Function

文章目录1. Local Texture Estimator for Implicit Representation Function1. 通过隐式神经网络表示方法 实现 超分辨率。2. 在编码器和解码器之间作者引入一个 local texture estimator3. 代码分析整体框架生成图像特征,编码器是一个常规的卷积网络,文…

vue3【生命周期讲解-详】

一、通过配置项的形式使用生命周期钩子 父组件&#xff1a; <template><button click"isShowDiv!isShowDiv">切换显示隐藏</button><Test v-if"isShowDiv"></Test> </template><script> import Test from ./…

怎么查看LinkedIn领英号用了多久?

怎么查看LinkedIn领英号用了多久&#xff1f; 1.第一步&#xff0c;点击“我”&#xff0c;点击设置和隐私 2.第二步&#xff0c;点击“数据隐私”&#xff0c;再点击“管理您的资料和活动” 3.往更早的时间去翻找&#xff0c;最早的就是注册时间 LinkedIn领英有什么开发…

Appium学习日记(三)——Windows系统测试桌面应用

Appium学习日记&#xff08;三&#xff09;——Windows系统测试桌面应用 一、环境搭建 1-1、WinAppDriver环境搭建 &#xff08;1&#xff09;开启开发者选项中的“开发人员模式” &#xff08;2&#xff09;Windows sdk下载安装 下载地址&#xff1a;https://developer.mi…

网络编程基础与套接字

&#x1f389;&#x1f389;&#x1f389;写在前面&#xff1a; 博主主页&#xff1a;&#x1f339;&#x1f339;&#x1f339;戳一戳&#xff0c;欢迎大佬指点&#xff01; 目标梦想&#xff1a;进大厂&#xff0c;立志成为一个牛掰的Java程序猿&#xff0c;虽然现在还是一个…

一次 G1 堆大小不均问题的排查及解决

现象 生产服务中&#xff0c;存在部分服务在 JVM 参数、POD 规格、物理机规格 一致&#xff0c;负载流量差异不大的情况下&#xff0c;出现在内存使用上差异较大的情况。下面是一些基本信息的收集和整理。 JVM 参数 -XX:UseG1GC -XX:MaxGCPauseMillis200 -XX:ParallelGCThre…

网络爬虫是什么?怎么学python爬虫

网络爬虫又称网络蜘蛛、网络机器人&#xff0c;它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页&#xff0c;并将所需要的数据抓取下来。通过对抓取的数据进行处理&#xff0c;从而提取出有价值的信息。 认识爬虫 我们所熟悉的一系列…

【Linux操作系统】crontab设置自动运行脚本

文章目录1 介绍2 修改系统时区3. 设置crontab定时任务3.1 相关命令3.2 自动运行shell脚本3.3 Crontab命令在线验证工具&#xff1a;3.4 Crontab日志路径1 介绍 最近要在linux机器上做量化策略&#xff0c;目前需要每天爬取一些数据&#xff0c;于是就写了一个python的策略放到…