关注

python通过调用海康SDK打开工业相机(全流程)

安装海康SDK

从海康威视官网下载对应的工业相机SDK开发包,通常包含动态库(.dll或.so)和头文件。将SDK解压到本地目录,确保路径无中文或特殊字符。

运行以下命令安装Python绑定库(以hikvision为例):

pip install hikvision

初始化SDK环境

调用NET_DVR_Init函数初始化SDK环境,设置回调函数和日志路径:

from hikvision import NetSdk

NetSdk.NET_DVR_Init()
NetSdk.NET_DVR_SetLogToFile(3, "./sdk_log/")  # 日志级别3,保存到指定目录

登录相机设备

使用NET_DVR_Login_V40函数通过IP地址、端口、用户名和密码登录相机:

device_info = NetSdk.NET_DVR_DEVICEINFO_V40()
login_params = NetSdk.NET_DVR_USER_LOGIN_INFO()
login_params.bUseTLS = 0
login_params.sDeviceAddress = "192.168.1.64".encode('utf-8')
login_params.wPort = 8000
login_params.sUserName = "admin".encode('utf-8')
login_params.sPassword = "password".encode('utf-8')

user_id = NetSdk.NET_DVR_Login_V40(login_params, device_info)
if user_id < 0:
    print("Login failed, error code:", NetSdk.NET_DVR_GetLastError())

启动实时预览

调用NET_DVR_RealPlay_V40配置预览参数并启动视频流:

preview_params = NetSdk.NET_DVR_PREVIEWINFO()
preview_params.hPlayWnd = 0  # 窗口句柄,0表示不显示
preview_params.lChannel = 1  # 通道号
preview_params.dwStreamType = 0  # 主码流
preview_params.dwLinkMode = 0  # TCP模式

realplay_handle = NetSdk.NET_DVR_RealPlay_V40(user_id, preview_params)
if realplay_handle < 0:
    print("Preview failed, error code:", NetSdk.NET_DVR_GetLastError())

设置回调函数接收数据

定义回调函数处理视频流数据,并通过NET_DVR_SetStandardDataCallBack注册:

def data_callback(lRealHandle, dwDataType, pBuffer, dwBufSize, pUser):
    if dwDataType == NetSdk.NET_DVR_STREAMDATA:
        print("Received data size:", dwBufSize)

NetSdk.NET_DVR_SetStandardDataCallBack(realplay_handle, data_callback, None)

释放资源

结束预览并注销登录,最后清理SDK环境:

NetSdk.NET_DVR_StopRealPlay(realplay_handle)
NetSdk.NET_DVR_Logout(user_id)
NetSdk.NET_DVR_Cleanup()


 

异常处理

检查每一步的返回值,通过NET_DVR_GetLastError获取错误码:

error_code = NetSdk.NET_DVR_GetLastError()
if error_code != 0:
    print("Error occurred, code:", error_code)

注意事项

  • SDK版本需与相机固件匹配,跨版本可能导致兼容性问题
  • 工业相机通常需要配置特定的网络参数(如子网掩码、网关)
  • 实时预览的数据回调函数应避免耗时操作,建议使用队列异步处理

转载自CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2601_94978440/article/details/156967479

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--