利用python打开别人手机摄像头_python 摄像头

利用python打开别人手机摄像头_python 摄像头前言今天这个案例,就是控制自己的摄像头拍照,并且把拍下来的照片,通过邮件发到自己的邮箱里。想完成今天的这个案例,只要记住一个重点:你需要一个摄像头思路通过opencv调用摄像头拍照保存图像本地用email库构造邮件内容,保存的图像以附件形式插入邮件内容用smtplib库发送邮件到指定邮箱开始代码工具导入importtimeimportcv2#pipinstallopencv-python-i镜像源网址fromemail.mime.imageimport

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

今天这个案例,就是控制自己的摄像头拍照,并且把拍下来的照片,通过邮件发到自己的邮箱里。
想完成今天的这个案例,只要记住一个重点:你需要一个摄像头

思路

  1. 通过opencv调用摄像头拍照保存图像本地
  2. 用email库构造邮件内容,保存的图像以附件形式插入邮件内容
  3. 用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")

运行代码,就会出现效果

利用python打开别人手机摄像头_python 摄像头

创建一个函数,设置一下我的邮件内容

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()

邮件端口设置

授权码可以在这里领取

利用python打开别人手机摄像头_python 摄像头

# 授权码
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打开别人手机摄像头_python 摄像头

发送到了邮箱

利用python打开别人手机摄像头_python 摄像头

利用python打开别人手机摄像头_python 摄像头

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169904.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BP人工神经网络matlab工具箱_matlab神经网络控制

    BP人工神经网络matlab工具箱_matlab神经网络控制自己测试人口预测的matlab实现:x=[54167551965630057482587966026661465628286465365994672076620765859672956917270499725387454276368785348067182992852298717789211908599242093717949749625997542987051000721016541030081…

    2025年9月12日
    4
  • springboot集成elasticsearch注意事项

    springboot集成elasticsearch注意事项一、elasticsearch基础  这里假设各位已经简单了解过elasticsearch,并不对es进入更多的,更深层次的解释,如有必要,会在写文章专门进行es讲解。  Elasticsearch是一个基于ApacheLucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。  但是,Lucene只是一个…

    2022年6月24日
    54
  • java handlersocket_HandlerSocket java客户端「建议收藏」

    java handlersocket_HandlerSocket java客户端「建议收藏」MySQL中有个handlersocket,直接跳过数据库处理中的sql分析过程,直接调用存储引擎的接口,可以大幅度提升数据库的性能。我的测试中,使用handlersocket与sql,可以提升约3-5倍,在我的环境中单条“增删改查”可以达到2.5TPS左右,没有作者说得可以达到10万TPS。有一个hs4j的java客户端,但是有些功能没有完善,还有一个不太正常的现象,就是连接时间长了,就会断开,…

    2022年8月24日
    7
  • tomcat 启动后标题修改 title修改「建议收藏」

    tomcat 启动后标题修改 title修改「建议收藏」Tomcat bin目录下用startup.bat启动Tomcat ,启动窗口显示的Title 更改方法如下:1 在bin目录下找到catalina.bat ,用文本模式打开2 找到 if “%TITLE%” == “” set TITLE=Tomcat 这句3 把 set TITLE=Tomcat 更改为 set TITLE=(想使用的名称包括中文) 即可。如图:…

    2022年8月19日
    8
  • pycharm不支持32位系统怎么办_win10更新一直安装失败

    pycharm不支持32位系统怎么办_win10更新一直安装失败出现ThisinstallationcontainsJetBrainsRuntime11whichdoesnotsupportMicrosoftWindows32-bitversion.这个导致的原因是电脑操作系统是32位的,不支持Pycharm64位的软件安装,因此需要我们去下载一个Pycharm32位的软件版本。可以在https://www.jetbrains.com/pycharm/download/other.html这里进入,选择Pycharm低版本的,例如2018版本P

    2022年8月25日
    6
  • web.config connectionStrings[通俗易懂]

    web.config connectionStrings[通俗易懂] web.configconnectionStrings数据库连接字符串的解释先来看一下默认的连接SQLServer数据库配置  SqlConnectionStringBuilder实例化时需要使用connectionString。如:SqlConnectionStringBuildbuilder=newSqlConnectionStringBuild(connection

    2022年5月21日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号