当前位置: 首页 > news >正文

阿里云建设网站好不好苏州市建设局招标网站首页

阿里云建设网站好不好,苏州市建设局招标网站首页,广东做网站优化公司报价,wordpress豆瓣电影图书分享插件目录 前提步骤 打开树莓派摄像头 查看是否有图像,登录游览器打开树莓派IP地址的8080端口 获取mjpg的视频流url 代码 先设定好mjpg的视频流的url 利用opencv库中的v2.VideoCapture类读取mjpg视频流 cv2.VideoCapture() 检查摄像头是否成功打开,…

目录

前提步骤

打开树莓派摄像头

查看是否有图像,登录游览器打开树莓派IP地址的8080端口

获取mjpg的视频流url

代码

先设定好mjpg的视频流的url

利用opencv库中的v2.VideoCapture类读取mjpg视频流   cv2.VideoCapture()

检查摄像头是否成功打开,如果没有,则打印错误消息并退出程序   cap.isOpened()

创建一个空的numpy数组    np.empty()

从视频中读取一帧图像    cap.read()

在窗口中显示图像输出    cv2.imshow

延时50毫秒,播放下一帧图像    cv2.waitKey

全部代码 

 将帧保存为图像   cv2.imwrite()

 读取图像  cv2.imread()    cv2.cvtColor

释放VideoCapture对象并关闭视频文件   cap.release()


前提步骤

  1. 树莓派可以用mjpg-streame库开启摄像头
  2. 安装好python

打开树莓派摄像头

  1. 进入mjpg库
    cd mjpg-streamer/mjpg-streamer-experimental
  2. 启动摄像头脚本
    ./start.sh 

查看是否有图像,登录游览器打开树莓派IP地址的8080端口

http://xxx.xxx.xxx.xxx:8080

获取mjpg的视频流url

点开stream,复制当前的网址(url)

http://xxx.xxx.xxx.xxx:8080/?action=stream

代码

先设定好mjpg的视频流的url

ip_address = '172.20.10.14'
port_number = 8080
url = f'http://{ip_address}:{port_number}/?action=stream'

利用opencv库中的v2.VideoCapture类读取mjpg视频流   cv2.VideoCapture()

  • 使用cv2.VideoCapture类的一个实例,可以通过传入摄像头设备ID或视频文件路径来连接摄像头或读取视频文件。例如,cv2.VideoCapture(0)表示打开笔记本的内置摄像头,cv2.VideoCapture("..\test.avi")表示打开指定路径的视频文件。
    cap = cv2.VideoCapture(f'http://{ip_address}:{port_number}/?action=stream')

检查摄像头是否成功打开,如果没有,则打印错误消息并退出程序   cap.isOpened()

  • cap.isOpened()是OpenCV中VideoCapture类的一个函数,用于检查视频是否成功打开。如果返回值为True,表示视频已经成功打开,反之则没有成功打开。
    if not cap.isOpened():print("无法打开摄像头")exit()

创建一个空的numpy数组    np.empty()

  • 得到一个240行,320列,3个通道(颜色通道)的数组,每个元素都是一个无符号8位整数(0-255)。
  • 该数组的形状为(240, 320, 3),并且数据类型为np.uint8。
  • 用于存储图像数据。许多图像格式(例如RGB)都有三个颜色通道,因此这个数组可以用于存储图像数据。
  • 在使用这个数组时,你可以像处理其他numpy数组一样处理它。
    # 创建一个空的numpy数组output来存储图像数据
    output = np.empty((240, 320, 3), dtype=np.uint8)

从视频中读取一帧图像    cap.read()

  • cap.read() 是 OpenCV 中 VideoCapture 类的函数
  • 该函数返回一个布尔值(True/False)以及一个帧图像。如果帧读取正确,则返回 True,否则返回 False。
  • ret 表示读取帧是否正确,frame 则是当前帧的图像。如果 ret 为 True,则可以处理 frame 图像;如果 ret 为 False,则表明视频已经读取完毕。
    ret, frame = cap.read()

在窗口中显示图像输出    cv2.imshow

  • cv2.imshow接受两个参数:窗口的名称和要显示的图像
  • 窗口名称是'output',要显示的图像是变量output
    cv2.imshow('output', output)

延时50毫秒,播放下一帧图像    cv2.waitKey

  • cv2.waitKey是 OpenCV 的一个函数,用于等待并处理键盘事件。
  • 50 是等待的毫秒数。这意味着如果用户在 50 毫秒内没有按任何键,则函数会返回当前活动的热键。否则,如果有按键被按下,它会被立即返回
    cv2.waitKey(50)

全部代码 

import cv2
import numpy as npip_address = '172.20.10.14'
port_number = 8080cap = cv2.VideoCapture(f'http://{ip_address}:{port_number}/?action=stream')if not cap.isOpened():print("无法打开摄像头")exit()output = np.empty((240, 320, 3), dtype=np.uint8)while True:ret, output = cap.read()cv2.imshow('output', output)cv2.waitKey(50)

 将帧保存为图像   cv2.imwrite()

  • cv2.imwrite() 是 OpenCV 库中的一个函数
  • 用于将图像写入文件
  • 两个参数:输出文件名和要写入的图像。
  • 使用 cv2.imwrite() 将 img 写入名为 "image.jpg" 的文件中。
    cv2.imwrite("capture.jpg", output)  

 读取图像  cv2.imread()    cv2.cvtColor

  • cv2.imread() 是 OpenCV 库中的一个函数
  • 用于读取图像文件
  • 一个参数,即要读取的图像文件的路径
  • 如果图像文件不存在或无法读取,cv2.imread() 将返回 None。如果图像文件存在并成功读取,则将返回一个 NumPy 数组,其中包含图像的像素值。
  • cv2.imread() 函数默认使用 BGR 颜色空间,而非 RGB 颜色空间。
  • 如果需要在处理图像时使用 RGB 颜色空间,可以使用 cv2.cvtColor() 函数将 BGR 图像转换为 RGB 图像。
img = cv2.imread('input.jpg')  #如果是BGR图像
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
  • img_rgb 是通过将 img 从 BGR 颜色空间转换为 RGB 颜色空间得到的。在 OpenCV 中,图像的默认格式是 BGR,而大多数其他图像处理库(如 Python 的 PIL 或 matplotlib)使用 RGB 颜色空间。因此,如果你需要在这些库中处理 OpenCV 图像,可能需要进行颜色空间的转换。
  • mg_rgb 通常指的是 RGB 图像,而 img 通常指的是 BGR 图像。虽然它们在数值上是一样的(因为它们表示的是同一幅图像的像素值),但在处理图像时,使用哪个变量取决于你的需求。例如,如果你需要将图像显示在 matplotlib 中,你可能需要使用 img_rgb。如果你需要处理图像的颜色通道顺序,你可能需要使用 img
  • 总的来说,虽然 img_rgb 和 img 在数值上相同,但它们的使用和语义上有一些区别。

释放VideoCapture对象并关闭视频文件   cap.release()

  • cap.release()是OpenCV库中的一个函数
  • 用于释放VideoCapture对象并关闭视频文件
  • 使用cv2.VideoCapture()创建一个VideoCapture对象后,这个对象会占用视频文件的相关资源,比如文件句柄、内存等。当你完成视频的读取后,应该调用cap.release()释放这些资源,以避免资源泄漏和占用。
    # 释放VideoCapture对象并关闭视频文件  
    cap.release()
  •  在调用cap.release()后,你不能再使用cap对象,否则会抛出异常。如果你需要再次读取视频文件,应该重新创建一个新的VideoCapture对象。

http://www.sczhlp.com/news/113186/

相关文章:

  • 数据通路-单总线结构(最头晕的一集)
  • python基础篇-集合
  • #egsg:在同一程序中比较-计算圆的面积
  • 282 项多模态胃肠病学数据集:适配 VLM 与 MLLM 微调,融合医学图像与临床文本的医疗 AI 训练数据
  • 2-sat板子
  • 绿色食品网站模板网站技术解决
  • 网站seo专员招聘武钢建工集团建设分公司网站
  • 北京好的做网站的公司产品经理培训哪个机构好
  • 微信手机网站51模板ppt
  • 如何弄一个网站加入google广告wordpress
  • 网站开发有哪几类tug wordpress
  • 做行业网站赚钱seo域名综合查询
  • 工具类网站做排名支付宝服务商平台
  • 哈尔滨有哪些做网站的公司wordpress版本推荐
  • centos 7中安装jenkins
  • pythonjs逆向 破解滑动验证码 - hello-*
  • 解决 pandas.to_csv 乱码、丢失行和自动换行问题 时间转换
  • JavaDay7
  • 秦皇岛提高网站排名做纪念品网站
  • 防止访问网站文件夹网站管理助手4.0 mysql
  • 以网站做跳板入侵seo免费推广
  • 做企业网站怎么接活河北企业网站建设技术
  • 网站建设服务 行业代码谷歌seo新规则
  • 网站ui网站怎样做银联支付接口
  • 河北建设银行石家庄分行招聘网站做网站甘特图 内容
  • 建店前期网站开通怎么做分录天猫与京东的网站建设管理
  • php做的网站如何盈利成都网站营销seo多少费用
  • 前端场景题笔记
  • P3934 [Ynoi Easy Round 2016] 炸脖龙 I 做题记录
  • 网站支付可以做二清怎么分析网页的布局