Python实现网页端显示摄像头拍摄视频

Python视频处理(2)——Flask网页开发+分镜 一、主程序基本结构 1、安装并导入Flask 安装:pip3 install flask 导入: from flask import Flask (以下2—5部分文案引自Python学习 | 2021-10-22 Flask Web开发_宣纸儿的博客-优快云博客,博主概括得非常凝练) 2、创建Flask对象(很重要的一步,不能忘记) flask程序需要创建一个Flask类对象,用于应用的配置和运行 name是Python中的特殊变量,如果文件作为主程序执行,那么__name__变量的. 阅读详情

需要基础

  • Python 端的web框架是tronado,你可以通过这个网址学习它
  • 我们发送请求的协议是websocket,是http协议升级版,看完让你彻底搞懂Websocket原理
  • Python 端需要安装的重要的库:
    • cv2 (用于打开摄像头)
    • tornado (搭建服务)
    • numpy (用于处理数组)
    • PIL (处理图片)
    • 其它一些基本库,大家应该都自带
  • 基本网页基础

代码力求简洁,没有上面基础的应该也能看懂 : )

后台实现

from tornado import web,httpserver,ioloop,websocket
import os
import cv2
import numpy as np
from PIL import Image
import base64

# 定义一些基本设置
port = 10101
address = "localhost"
JPEG_HEADER = "data:image/jpeg;base64,"  # 这个是对图片转码用的

# 开启一个摄像头
cap = cv2.VideoCapture(0)

def get_image_dataurl():
    # (1).从摄像头读取数据, 读取成功 ret为True,否则为False,frame里面就是一个三维数组保存图像
    ret,frame = cap.read()
    # (2).先将数组类型编码成 jepg 类型的数据,然后转字节数组,最后将其用base64编码
    r, buf = cv2.imencode(".jpeg", frame)
    dat = Image.fromarray(np.uint8(buf)).tobytes()
    img_date_url = JPEG_HEADER + str(base64.b64encode(dat))[2:-1]
    return img_date_url

class IndexHandler(web.RequestHandler):
    def get(self, *args, **kwargs):
        self.render("index.html")

class VideoHandler(websocket.WebSocketHandler):

    # 处理接收数据
    def on_message(self, message):
        self.write_message({"img":get_image_dataurl()})

if __name__ == '__main__':

    app = web.Application(handlers=[(r"/",IndexHandler),
                           (r"/index",IndexHandler),
                            (r'/video',VideoHandler)],
                          template_path=os.path.join(os.path.dirname(__file__),"ui"))
    http_server = httpserver.HTTPServer(app)
    http_server.listen(port=port,address=address)
    print("URL: http://{}:{}/index".format(address,port))
    ioloop.IOLoop.instance().start()
    

前端页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>display</title>
</head>
<body>

    <!--
        canvas 这个标签常用来绘制图像
    -->
    <canvas id="canvas"></canvas>

</body>

<script>
    var address = "localhost";
    var port = 10101;
    var ws = new WebSocket("ws://"+address+":"+port+"/video");
    var canvas = document.getElementById("canvas");
    var start = document.getElementById("start");

    //设置一个定时10ms,等待WebSocket 连接完成
    var timer = setInterval(function () {
        if (ws.readyState == 1){
            //想服务器发送数据,请求图片,这里发送的内容随便都可以
            ws.send("msg");
            clearInterval(timer);
        }
    },10);

    //信息的回调处理函数
    ws.onmessage = function (res) {
        //(1).首先获取到一帧帧的图片
        var img_src = JSON.parse(res.data)["img"];
        var img = new Image();
        img.src = img_src;

        //(2).展示出来
        var ctx = canvas.getContext("2d"); // 2维图像
        canvas.setAttribute("width",img.width);
        canvas.setAttribute("height",img.height);
        ctx.drawImage(img,0,0); //后面两个0代表从坐标(0,0)的位置开始绘制图片
        ws.send("msg");
    }

</script>
</html>

后序

由于canvas 刷新的问题,在有些浏览器可能不成功
我之前用的Google不成功,后来用QQ浏览器成功了

代码提供

点击传送

Python微信远程控制摄像头-拍摄女朋友坐电脑前聊天时表情 盯着电脑工作大半天了,有点疲劳,想想同样苦逼盯着电脑的女朋友,就想逗逗她缓解一下疲劳。 于是一时手痒,开始了新一轮的骚操作,用Python基于itchat实现微信控制电脑打开摄像头拍摄当前电脑的使用者并且将图片发送到你微信上的功能。看到图片后差点闪瞎我 24k 血轮眼。打码上图: 本操作是可以连续拍摄多张的。看不懂程序的也没关系,只要会用电脑就可以了。除了用代码方式运行生成外,还... 阅读详情

相关推荐

基于树莓派与Remo.tv的远程控制机器人:物联网项目实战全解析

物联网(IoT)技术通过将物理设备连接到互联网,实现了远程监控与控制,其核心在于嵌入式系统、网络通信与传感器/执行器的集成。其工作原理通常基于客户端-服务器架构,通过协议(如MQTT、WebSocket)进行数据交换,使终端设备能响应云端指令。该技术的价值在于打破地理限制,实现自动化与实时交互,广泛应用于智能家居、工业监控及远程教育等领域。本文聚焦一个典型应用:利用树莓派(嵌入式Linux平台)与Remo.tv云平台,构建一个可通过网页实时控制的伺服电机驱动装置。项目涉及GPIO引脚编程、PWM信号生成以精

weixin_30326515的博客 345

python,gjango框架,web网页,使用cv2,获取和显示摄像头

本小白在网上找了好多资源都用不了,甚至一度想框架嵌框架,发现嵌入框架还是不行,无奈去找了写代码的,80!,学生党几天的饭钱,果断放弃,柳暗花明又一村啊,看到chitgpt,无聊去试试,居然真的可以!,以上代码是chitgpt给出来的。下载安装 opencv-python ,numpy。

m0_46079403的博客 1064

基于YOLOv8的田间杂草检测系统设计与优化

计算机视觉中的目标检测技术是现代农业智能化的关键技术之一,其核心原理是通过深度学习模型自动识别图像中的特定对象。YOLO系列算法作为实时目标检测的标杆,以其高效的推理速度和良好的精度平衡著称。在农业领域,基于YOLOv8的杂草检测系统展现了显著的技术价值,通过优化骨干网络和引入注意力机制,实现了92.3%的识别准确率。该系统可广泛应用于无人机巡检、智能喷洒等场景,大幅提升农田管理效率。特别是在边缘计算设备部署时,结合NPU加速可实现38FPS的实时性能,为精准农业提供了可靠的技术支持。

weixin_30457551的博客 400

python读取摄像头,做人脸识别,并把视频推送到html页面显示

本文的重点内容为opencv+flask+face_recognition 导读 先上开源代码,https://github.com/Kr1s77/flask-video-streaming-recorder 作者通过opencv+flask完成了读取摄像头,并且在HTML页面显示的功能,很多场景都会用到,本文是分享二次开发人脸识别。 环境正常登录 源码的main.py中源码app.run(threaded=True, host="0.0.0.0"),默认了port=5000,端口是可以改变的,如.

ocy的博客 8341

AI硬件落地实战:边缘推理部署小白可验证路径

AI硬件落地是指将训练好的机器学习模型实际部署到嵌入式设备中运行,其核心在于平衡模型精度、内存占用与实时性。原理上需跨越算法量化、传感器驱动、供电稳定性及轻量级推理框架(如TensorFlow Lite Micro)协同优化。技术价值体现在摆脱云端依赖,实现低延迟、高隐私的本地决策。典型应用场景包括智能家居感知、工业设备状态识别、老年跌倒检测等资源受限环境。本文聚焦ESP32-CAM等低成本开发板,以‘AI硬件落地’为锚点,贯穿‘边缘推理部署’全流程,并提供可触摸、可测量、可复现的‘小白可验证路径’,涵盖供

weixin_33968104的博客 316

深度学习舌苔识别系统:模型训练与GUI实现

深度学习图像分类技术正逐步应用于医疗辅助诊断领域,其中迁移学习通过复用预训练模型权重,有效缓解医学图像样本不足的难题,为小规模数据集训练提供可靠方案。在实际工程中,如何将训练好的模型封装为桌面图形界面应用,是不少开发者面临的挑战。以舌苔识别为例,结合Python生态中的PyTorch与Tkinter,可构建从数据集预处理、分类体系定义到模型调优、GUI部署的完整链路。文章针对模型选型、颜色增强、线程设计及混淆矩阵验证等关键环节展开讨论,为动态识别场景下的工程落地提供参考。

weixin_33924220的博客 331

opencv与IP摄像头的故事

因为需要实时处理视频,但是穷不想买摄像头,于是就把我的手机配置成IP摄像头。这样可以实时处理我手机拍摄的的视频。通过一个app来实现这个操作。 点击我–手机下载一个app 打开app后去设置一下账号和密码 下来就是代码部分了。opencv我们打开摄像头使用的videocapture这个方法。 注意链接为:http://admin:admin@192.168.123.58:8081/ http://用户名:密码@ip地址:端口号 python代码 import cv2 as cv def vi

性感的小君君 751

从零构建基于WebSocket与MJPEG的互联网摄像测量系统

计算机视觉测量技术通过摄像头捕捉图像,并利用算法将像素信息转换为精确的物理尺寸,其核心原理在于建立图像坐标系与世界坐标系的映射关系。这项技术的价值在于实现了非接触、高精度的自动化测量,广泛应用于工业检测、智能安防和远程监控等领域。随着物联网和云边协同架构的普及,传统的本地化视觉系统正朝着分布式、可远程交互的方向演进。本文聚焦于如何利用WebSocket协议实现低延迟双向通信,并结合MJPEG流媒体技术,构建一个稳定、实时的互联网摄像测量系统。该系统采用边缘-云端-客户端三层模型,在树莓派上部署核心测量算法,

weixin_33885676的博客 405

基于python+django框架+Mysql数据库的摄影图片分享平台系统设计与实现

基于python+django框架+Mysql数据库的摄影图片分享平台设计与实现

杭州.黄老师 1534

ports_checker:轻松使用Python检查输出端口

ports_checker 轻松使用Python检查输出端口

Python实时获取cmd的输出

最近发现一个问题,一个小伙儿写的console程序不够健壮,监听SOCKET的时候容易崩,造成程序的整体奔溃,无奈他没有找到问题的解决办法,一直解决不了,可是这又是一个监控程序,还是比较要紧的,又必须想办法解决。 (这是要搞死我的节奏啊….)由于个人不太懂他用的语言,只能在程序外围想办法。 环境描述: 1. 目标程序执行时会监听8080端口,TCP,并在每一次client连接后通过console输出client的IP地址。 2. 监听不是一次性完成的,而是一直监听,程序并不会退出 3. 为了监控需要,最好能对连接的IP进行排序,整理。 P.S. 系统基于windows平台。 想起

基于YOLOv8的多端车流检测系统(用于毕设+开源)

👉系统可大体分为两大模块(客户端、网页端)👉基于yolov8的多端检测系统_哔哩哔哩_bilibili大佬们,都是有问必答,并且十分有耐心,呜呜呜,太感动了!还有很多优秀的开源项目,太赞了!

Pan_peter的博客 3万+

qcom bypass node介绍

介绍qcom bypass node,以及如何让其生效

haodada1226的博客 2043

只需一个7MB模型,2K视频实时人像抠图不再是难题:MODNet快速上手指南

你是否遇到过这样的尴尬时刻:精心拍的视频想换个背景,却发现专业剪辑软件的抠图功能要么慢得让人抓狂,要么需要标注繁琐的Trimap蒙版?直播时想用虚拟背景,结果帧率掉到没法看,发丝边缘更是惨不忍睹?别急,今天的主角MODNet,就是一个把"实时人像抠图"从专业工作站搬到普通电脑上的开源神器。 MODNet是基于AAAI 2022论文的开源项目,官方定位是"仅需RGB图片输入的实时人像抠图模型"。它

gitblog_00020的博客 203

玩转 Milvus(二):在 Ubuntu 22.04(WSL2)上安装 Milvus

本文详细介绍了在Ubuntu 22.04(WSL2)环境下安装Milvus向量数据库的两种单机模式:Milvus Lite和Milvus Standalone。Milvus Lite作为轻量级Python库,适合快速学习和小规模实验,只需通过pip安装即可使用。Milvus Standalone则支持Docker和Docker Compose两种部署方式,适合开发测试或小规模生产环境。文章对比了不同安装方式的优缺点,并提供了验证案例和常见问题解答,帮助开发者快速上手,实现简单的语义搜索功能。

企业级后端与 AI 应用开发双线探索 2507

单细胞分析(五)——使用Harmony进行数据整合和去批次

为了保证单细胞RNA测序数据的准确性和可靠性,需要对数据进行样本去批次处理。去批次的方法包括Harmony,SeuratV3等,这些方法可以有效地消除批次效应和技术噪声,并提高单细胞RNA测序数据的质量,为后续的数据分析提供更加可靠的基础。

阅读文献,记录学习笔记 3万+

Python与CNN实现鸡兔识别系统:毕业设计实战

卷积神经网络(CNN)作为深度学习在计算机视觉领域的核心技术,通过局部感知和权值共享机制高效提取图像特征。基于Python的TensorFlow/Keras框架,开发者能快速构建CNN模型实现图像分类任务。本系统采用经典的三层卷积结构,配合数据增强和迁移学习技术,在动物识别场景中达到90%+准确率。项目完整覆盖从数据采集、模型训练到Flask服务部署的全流程,是掌握AI工程化落地的典型实践案例,特别适合作为深度学习入门项目或毕业设计选题。关键技术点包括OpenCV图像预处理、模型微调策略及RESTful A

weixin_34210740的博客 392

宇瞳杯安防镜头设计

宇瞳杯安防镜头设计

weixin_72050316的博客 1517

FreeMoCap:3台普通摄像头做出研究级3D动作捕捉

FreeMoCap是一个开源的无标记动作捕捉系统:用2-3台普通USB摄像头围绕拍摄对象,配合一块ChArUco标定板做一次标定,就能自动从视频里检测人体骨骼并重建出3D骨架。不用动捕服、不用反光标记点,软件完全免费。 [![FreeMoCap ChArUco标定板:用于多台网络摄像头标定与动作捕捉校准](https://raw.gitcode.com/GitHub_Trending/fr/fr

gitblog_00819的博客 432

网格质量评价

CFD中评价网格质量的方法

B_etter_Man的博客 1万+

2024年数字IC秋招-华为机试-数字芯片-实习笔试题

笔试题目:40个选择题A.综合时不同文件列表内的宏定义仅在本列表生效B.宏定义会覆盖,不需要单独undefC.仿真时出现宏定义冲突以最后一次值为准D.宏定义最好在各文件中随用随定义A.4/9B.4/6C.01D.0/6。

qq_42135020的博客 2892

基于YOLOv8与FastAPI的智能垃圾分类系统实战:从数据标注到网页部署

目标检测是计算机视觉的核心任务之一,旨在让计算机识别并定位图像中的物体。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并预测物体的边界框和类别。这项技术的价值在于将视觉感知自动化,广泛应用于安防监控、自动驾驶、工业质检等领域。在环保与智慧城市场景中,目标检测技术能有效解决垃圾分类难题,实现高效、准确的自动化识别。本文聚焦于利用当前主流的目标检测模型YOLOv8,结合FastAPI框架,构建一个完整的网页版生活垃圾智能检测与分类系统。文章详细阐述了从数据集构建、模型训练调优,到后端API开发、前端交互

416

2026年CSP-J初赛真题及答案解析

2026年CSP-J初赛真题及题解

王老师青少年编程 1631

基于YOLOv8的安全帽检测系统开发与实践

目标检测是计算机视觉的核心任务之一,通过深度学习算法实现物体定位与分类。YOLO系列作为单阶段检测模型的代表,以其高效的检测速度在工业场景广泛应用。本文以安全帽检测为切入点,详细解析如何基于YOLOv8构建高精度检测系统。系统采用PySide6开发交互界面,支持多输入源实时检测,在保持80ms/帧推理速度的同时达到89.3%的mAP精度。通过数据增强、模型优化等策略,有效解决了工地场景下的小目标检测和类别不平衡问题。该系统已成功应用于建筑工地等场景,显著提升安全管理效率,为工业视觉检测提供了可复用的技术方案

weixin_33866037的博客 436

python ERA-5气象数据NetCDF格式解析(一)

python ERA-5气象数据NetCDF格式解析

weixin_43896283的博客 2638

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

130英镑低成本树莓派水下探测器DIY实战:从密封到网页控制全解析

水下机器人技术常被视为高门槛、高成本的领域,但随着单片机与开源硬件的普及,DIY一台实用的遥控潜航器(ROV)正变得触手可及。水对无线电信号有极强的衰减效应,这使得多数无线方案在浅水区便会失联,因此系缆通信成为低成本水下探测的首选架构。围绕这一原理,开发者可利用树莓派与直流电机、压力传感器等基础模块,构建一套完整的图像传输与远程控制系统。此类设备在水下考古、水产观察、管道巡检乃至教学科研等场景中均有广阔应用空间。本文将从硬件选型、水密工艺到网页控制端搭建,完整拆解如何以130英镑的预算打造一台稳定好用的树莓

weixin_34032792的博客 353

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Python 图片转数组,二进制互转
下一篇: 矩阵求导
布鲁格若门
博客等级 码龄9年 431粉丝 43原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布鲁格若门

对你有用的话真是太好了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值