前言
工程上海康相机占据龙头老大位置,大多数工程中采用的是海康相机只有少部分是大华相机,因此在处理CV任务的时候很难避免与海康相机对接使用。
在这里我将选择以海康相机为例,讲解一下使用OpenCv连接海康相机获取视频画面。
情况一:项目和相机在同一网段
这种情况属于工程上的理想状态了,这个时候只要路由器和交换机不出问题(当然出问题了就喊运维人员前来处理了),使用OpenCv就可以很块的连接上相机了。
我们可以上海康官网或直接搜索海康RTSP格式(RTSP格式如下,大家可以自行搜索各部份的解释),我们需要从数据库中获取对应相机的:
账号
、
密码
和
IP
然后即可组成海康设备的RTSP,使用OpenCv直接读取
rtsp = "rtsp://%s:%s@%s:554/cam/realmonitor?channel=1&subtype=1" % (username, password, ip)
cap = cv2.VideoCapture(rtsp)
情况二:项目和相机不在同一网段
这种情况属于工程上的大多数状态了,这个时候往往是会有海康的接口进行获取RTSP,然后用OpenCv连接Rtsp。使用RTSP连接的话存在一下几种常见的意外情况:
-
相机端掉线(施工把线挖断了、欠网费了等)
-
本地网络断线(同上)
-
RTSP本身传输协议存在的一些不完美的地方
-
可以连接上但是无法播放等原因
-
掉帧和花屏原因(不排除海康那边做的不够好)
我们可以获取到相机的
indexcode
(和海康人员协商索要),通过发送POST或Get请求得到RTSP,得到返回值中解析出RTS
通过接口传送相机
indexcode
获取此相机的RTSP并通过OpenCv连接示例如下: RTSP示例: rtsp://192.168.1.100:554/openUrl/MEyN5m0
VideoCap = cv2.VideoCapture(RTSP)
ret, frame = VideoCap.read()
写在后面
在海康官网上有连接海康相机的SDK开发工具,也有python、Jave、C#和C++版本 ,大家可以自行对接海康SDK进行连接相机(SDK较为鸡肋)
作者:小小杨树
OpenCV是一个开源的计算机视觉库,里面封装了很多图像处理方面的优秀算法:例如图片轮廓边缘检测,特征点提取…,可以在Windows,Linux,Mac等平台使用;虽然OpenCv是用 C++ 编写的,并且现在主要接口也是 C++ 语言的但,现在该库也同时提供大量面向 python、matlab以及Java。
本书首先介绍OpenCV的入门知识及安装,然后介绍OpenCV的基础知识,包括用户界面、矩阵运算、滤波器和直方图等,之后介绍复杂的计算机视觉算法,包括对象分割和分类、视频监控、对象跟踪等,后探讨对象跟踪、文本识别、机器学习和人脸检测等高级技术。阅读本书之后,你将掌握常用和新的计算机视觉技术,并学会从零开始构建各类OpenCV项目。