如果做监控,经常会遇到读取摄像头的数据。如何在python中读取摄像头数据,并显示呢?

双码流

一般高清摄像头产品编码器可同时产生两个不同的编码格式,统称主码流和子码流,双码流技术兼顾了高质量图像传输和窄

带宽传输。

主码流用于本地存储,子码流适用于图像在低带宽网络上传输。

双码流采用一路高码率的码流用于本地高清存储,例如QCIF/CIF/D1编码,一路低码率的码流用于网络传输,例如QCIF/CIF编

码,同时兼顾本地存储和远程网络传输。双码流能实现本地传输和远程传输两种不同的带宽码流需要,本地传输采用高码

流可以获得更高的高清录像存储,远程传输采用较低的码流以适应CDMA/ADSL等各种网络而获得更高的图像流畅度。

SDK方式读取数据

一般主流的厂商,会提供SDK来访问摄像头的数据,比如海康,大华。我们可以直接下载SDK,加载Dll去读取数据

RSTP方式读取数据

如果不想利用SDK来读取数据,我们可以通过RSTP协议来读取视频流数据。比如:

海康:

rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream

说明:

username: 用户名。例如admin。

password: 密码。例如12345。

ip: 为设备IP。例如 192.0.0.64。

port: 端口号默认为554,若为默认可不填写。

codec:有h264、MPEG-4、mpeg4这几种。

channel: 通道号,起始为1。例如通道1,则为ch1。

subtype: 码流类型,主码流为main,辅码流为sub。

例如,请求海康摄像机通道1的主码流,Url如下

主码流:

rtsp://admin:12345@192.0.0.64:554/h264/ch1/main/av_stream

rtsp://admin:12345@192.0.0.64:554/MPEG-4/ch1/main/av_stream

子码流:

rtsp://admin:12345@192.0.0.64/mpeg4/ch1/sub/av_stream

rtsp://admin:12345@192.0.0.64/h264/ch1/sub/av_stream

大华:

rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0

说明:

username: 用户名。例如admin。

password: 密码。例如admin。

ip: 为设备IP。例如 10.7.8.122。

port: 端口号默认为554,若为默认可不填写。

channel: 通道号,起始为1。例如通道2,则为channel=2。

subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)

例子

[python]

import wx

import cv2

class MainWindow(wx.Panel):

def __init__(self, parent, capture):

wx.Panel.__init__(self, parent)

mainSizer = wx.BoxSizer(wx.VERTICAL)

self.inputBox = wx.TextCtrl(self)

mainSizer.Add(self.inputBox, 0, wx.ALL, 5)

# video

videoWarper = wx.StaticBox(self, label="Video", size=(640, 480))

videoBoxSizer = wx.StaticBoxSizer(videoWarper, wx.VERTICAL)

videoFrame = wx.Panel(self, -1, size=(640, 480))

cap = ShowCapture(videoFrame, capture)

videoBoxSizer.Add(videoFrame, 0)

mainSizer.Add(videoBoxSizer, 0)

parent.Centre()

self.Show()

self.SetSizerAndFit(mainSizer)

class ShowCapture(wx.Panel):

def __init__(self, parent, capture, fps=30):

wx.Panel.__init__(self, parent, wx.ID_ANY, (0, 0), (640, 480))

self.capture = capture

ret, frame = self.capture.read()

height, width = frame.shape[:2]

parent.SetSize((width, height))

frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

self.bmp = wx.BitmapFromBuffer(width, height, frame)

self.timer = wx.Timer(self)

self.timer.Start(1000. / fps)

self.Bind(wx.EVT_PAINT, self.OnPaint)

self.Bind(wx.EVT_TIMER, self.NextFrame)

def OnPaint(self, evt):

dc = wx.BufferedPaintDC(self)

dc.DrawBitmap(self.bmp, 0, 0)

def NextFrame(self, event):

ret, frame = self.capture.read()

if ret:

frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

self.bmp.CopyFromBuffer(frame)

self.Refresh()

rstp = ‘rtsp://admin:admin2018@192.168.1.180:554/MPEG-4/ch1/main/av_stream’

capture = cv2.VideoCapture(rstp)

# capture = cv2.open(rstp)

app = wx.App(False)

frame = wx.Frame(None, -1, ‘HGA Count’, size=(400, 400))

panel = MainWindow(frame, capture)

frame.Show()

app.MainLoop()

[/python]

python读取摄像头数据_Opencv 读取摄像头数据 | 代码驱动科技相关推荐

  1. python读取摄像头数据_python 读取摄像头数据并保存的实例

    python如何能采集多个摄像头的数据 .要用opencv吗?听说这个问题不好解决啊只有把自己过得像王后一样,才能吸引你想要的国王. 可以,用PYQT+CV2,四个USB连接成功,程序如下,UI要自己 ...

  2. python使用openpyxl读取数据_Python-openpyxl读取和写入数据1

    1.读取单元格保存到文件,注意python中文件报错或者不能写入时改文件后缀:.xls from openpyxl import Workbook from openpyxl import load_ ...

  3. python读取文件某一行-使用python读取.text文件特定行的数据方法

    如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...

  4. python读取文件多行内容-使用python读取.text文件特定行的数据方法

    如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...

  5. 【Python】从文件中读取数据

    从文件中读取数据 1.1 读取整个文件 要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下) PI_DESC.txt 3.1415926535 ...

  6. 【python图像处理】txt文件数据的读取与写入

    在使用python进行数据和图像处理的过程中,经常会遇到从txt文件中读取数据.已经将处理过程中的矩阵数据写入到txt文件的情形,如在伪彩映射中读取颜色映射表. 下面介绍几种我平时常用的txt文件数据 ...

  7. python读取html文件中的表格数据_Python 读取各类文件格式的文本信息 | doc,excel,html,mht...

    原标题:Python 读取各类文件格式的文本信息 | doc,excel,html,mht 众所周知,python最强大的地方在于,python社区汇总拥有丰富的第三方库,开源的特性,使得有越来越多的 ...

  8. python读取表格数据_Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  9. python读文件和写文件-python开发--从文件中读取数据和写入文件

    #! /usr/bin/env python -*- coding:utf-8 -*- """ @Author:gcan @Email:1528667112@qq.com ...

最新文章

  1. DataCleaner 3.1.1 发布,数据质量分析管理
  2. 三摄正普及,四摄在路上?谷歌逆天AI算法,只做单摄虚化
  3. 第17天学习Java的笔记(匿名对象,随机数,猜数字小游戏)
  4. 调度场算法与逆波兰表达式
  5. matlab卷积完为什么要归一化,为什么要进行反归一化处理,而且反归一化什么意思?...
  6. 并发环境下的缓存容器性能优化(上):不可变的哈希表
  7. 用Eclipse创建一个spring boot(创建,并配好controller)
  8. 云计算与大数据——数据挖掘常用算法
  9. 那些C++牛人的博客
  10. Ubuntu系统下python编程入门
  11. no output folder解决方案
  12. pta第六章错题函数and编程
  13. java梯形_如何绘制梯形?
  14. 原型模式使用手册,如何正确使用原型模式
  15. 【Python】Python进程池multiprocessing.Pool八个函数对比:apply、apply_async、map、map_async、imap、starmap...
  16. maven项目的Archetype常用选择
  17. 《安富莱嵌入式周报》第308期:开源带软硬件安全认证的PLC设计,开源功率计,可靠PID实现,PR2机器人设计文件全开源,智能手表设计WASP-OS
  18. PowerDesigner16.7 安装与配置
  19. 用RP如何设计出优雅的原型图
  20. 20151106 向死而生倒计时

热门文章

  1. 净水器市场,300亿体量就到头了?
  2. 【机器学习笔记(十)】之通俗易懂理解到底最大似然估计是什么?
  3. zt_vage的delete大量数据方法
  4. 用python画熊猫-如何用安德鲁曲线绘制熊猫数据帧?
  5. 高通双通路WIFI是什么
  6. bool返回值的函数如果不return会咋样
  7. 自学AE AK大神笔记022_墨水飞溅效果
  8. el-from中的el-input去除边框和阴影
  9. win10下快速批量生成文件夹的方法记录
  10. 【Chrome】Chrome浏览器怎么查看版本信息