python读取摄像头数据_Opencv 读取摄像头数据 | 代码驱动科技
如果做监控,经常会遇到读取摄像头的数据。如何在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 读取摄像头数据 | 代码驱动科技相关推荐
- python读取摄像头数据_python 读取摄像头数据并保存的实例
python如何能采集多个摄像头的数据 .要用opencv吗?听说这个问题不好解决啊只有把自己过得像王后一样,才能吸引你想要的国王. 可以,用PYQT+CV2,四个USB连接成功,程序如下,UI要自己 ...
- python使用openpyxl读取数据_Python-openpyxl读取和写入数据1
1.读取单元格保存到文件,注意python中文件报错或者不能写入时改文件后缀:.xls from openpyxl import Workbook from openpyxl import load_ ...
- python读取文件某一行-使用python读取.text文件特定行的数据方法
如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...
- python读取文件多行内容-使用python读取.text文件特定行的数据方法
如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...
- 【Python】从文件中读取数据
从文件中读取数据 1.1 读取整个文件 要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下) PI_DESC.txt 3.1415926535 ...
- 【python图像处理】txt文件数据的读取与写入
在使用python进行数据和图像处理的过程中,经常会遇到从txt文件中读取数据.已经将处理过程中的矩阵数据写入到txt文件的情形,如在伪彩映射中读取颜色映射表. 下面介绍几种我平时常用的txt文件数据 ...
- python读取html文件中的表格数据_Python 读取各类文件格式的文本信息 | doc,excel,html,mht...
原标题:Python 读取各类文件格式的文本信息 | doc,excel,html,mht 众所周知,python最强大的地方在于,python社区汇总拥有丰富的第三方库,开源的特性,使得有越来越多的 ...
- python读取表格数据_Python读取Excel数据并根据列名取值
一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...
- python读文件和写文件-python开发--从文件中读取数据和写入文件
#! /usr/bin/env python -*- coding:utf-8 -*- """ @Author:gcan @Email:1528667112@qq.com ...
最新文章
- DataCleaner 3.1.1 发布,数据质量分析管理
- 三摄正普及,四摄在路上?谷歌逆天AI算法,只做单摄虚化
- 第17天学习Java的笔记(匿名对象,随机数,猜数字小游戏)
- 调度场算法与逆波兰表达式
- matlab卷积完为什么要归一化,为什么要进行反归一化处理,而且反归一化什么意思?...
- 并发环境下的缓存容器性能优化(上):不可变的哈希表
- 用Eclipse创建一个spring boot(创建,并配好controller)
- 云计算与大数据——数据挖掘常用算法
- 那些C++牛人的博客
- Ubuntu系统下python编程入门
- no output folder解决方案
- pta第六章错题函数and编程
- java梯形_如何绘制梯形?
- 原型模式使用手册,如何正确使用原型模式
- 【Python】Python进程池multiprocessing.Pool八个函数对比:apply、apply_async、map、map_async、imap、starmap...
- maven项目的Archetype常用选择
- 《安富莱嵌入式周报》第308期:开源带软硬件安全认证的PLC设计,开源功率计,可靠PID实现,PR2机器人设计文件全开源,智能手表设计WASP-OS
- PowerDesigner16.7 安装与配置
- 用RP如何设计出优雅的原型图
- 20151106 向死而生倒计时