最近新项目中要把一套现有的系统移植到华为Atlas终端上,因为现在这套系统里关于摄像头预置位跳转,抓图等功能是调用海康SDK实现的;但是Atlas终端是ARM平台的,海康的SDK是x86平台的,并没有提供ARM版本的,所以考虑使用onvif协议实现预置位跳转和抓图功能,这样就不用考虑平台差异了。
onvif接口说白了就是webservice接口的调用,各个语言也都提供了相关的类库,大致看了一下C++和python的。对比看来,不得不承认在易用性方面python高出了C++不止一个量级。下面就介绍一下,如何通过python-onvif实现摄像头坐标跳转,预置位跳转以及抓图功能。
首先是开发环境,这里使用的是python3
然后安装python-onvif:
pip3 install --upgrade onvif_zeep
下面介绍一下使用的使用python-onvif基本流程:
1.创建ONVIFCamera对象,我们可以理解为支持onvif协议的设备。
2.调用ONVIFCamera对象的create_xxx_service()方法来获取相应服务。
3.一般我们首先会调用create_media_service()方法来获取media_service()服务,然后调用这个服务提供的GetProfiles()来获取配置信息,可以从配置信息里取到Token。
4.接下来就是通过给onvif接口传递参数,来调用相关接口了。至于如何传参,及调用文档里写的很清楚
There are two ways to pass parameter to services methods
1. Dict
params = {'Name': 'NewHostName'}
device_service.SetHostname(params)
2. Type Instance
params = device_service.create_type('SetHostname')
params.H

本文介绍如何使用Python-onvif库在ARM平台上控制摄像头,实现坐标跳转、预置位跳转和抓图功能。通过创建ONVIFCamera对象和服务,获取配置信息并调用相关接口。
最低0.47元/天 解锁文章
6124

被折叠的 条评论
为什么被折叠?



