python opencv 调用 海康威视工业相机(又全又细又简洁)

安装依赖

确保已安装OpenCV和hikvision官方SDK(HCNetSDK)。OpenCV可通过pip安装:

pip install opencv-python

海康SDK需从官网下载,解压后根据系统类型(Windows/Linux)安装驱动和库文件。

初始化相机连接

使用海康SDK的NET_DVR_Login_V40函数登录设备。需要设备IP、用户名、密码:

from ctypes import * import cv2 # 加载海康SDK hik_sdk = cdll.LoadLibrary('./libhcnetsdk.so') # Linux路径示例 # 设备登录参数 device_info = NET_DVR_DEVICEINFO_V40() login_params = NET_DVR_USER_LOGIN_INFO() login_params.bUseAsynLogin = 0 login_params.sDeviceAddress = "192.168.1.64".encode('utf-8') login_params.sUserName = "admin".encode('utf-8') login_params.sPassword = "password".encode('utf-8') # 登录设备 user_id = hik_sdk.NET_DVR_Login_V40(byref(login_params), byref(device_info)) if user_id < 0: print("登录失败,错误码:", hik_sdk.NET_DVR_GetLastError())

https://www.zhihu.com/zvideo/1994569686508122814/
https://www.zhihu.com/zvideo/1994569686768178579/
https://www.zhihu.com/zvideo/1994569684880745186/
https://www.zhihu.com/zvideo/1994569683186255158/
https://www.zhihu.com/zvideo/1994569682783586161/
https://www.zhihu.com/zvideo/1994569682389325822/
https://www.zhihu.com/zvideo/1994569677238728015/
https://www.zhihu.com/zvideo/1994569676244685752/
https://www.zhihu.com/zvideo/1994569675984633884/
https://www.zhihu.com/zvideo/1994569673912627338/
https://www.zhihu.com/zvideo/1994569673384167055/
https://www.zhihu.com/zvideo/1994569671656112881/
https://www.zhihu.com/zvideo/1994569669596693190/
https://www.zhihu.com/zvideo/1994569667394688542/
https://www.zhihu.com/zvideo/1994569666249643514/
https://www.zhihu.com/zvideo/1994569665691813199/
https://www.zhihu.com/zvideo/1994569665029096195/
https://www.zhihu.com/zvideo/1994569663816938831/
https://www.zhihu.com/zvideo/1994569661929497422/
https://www.zhihu.com/zvideo/1994569661237454557/
https://www.zhihu.com/zvideo/1994569660566353291/
https://www.zhihu.com/zvideo/1994569660897726783/
https://www.zhihu.com/zvideo/1994569660025308385/
https://www.zhihu.com/zvideo/1994569658183988614/
https://www.zhihu.com/zvideo/1994569657361929213/
https://www.zhihu.com/zvideo/1994569655495460306/
https://www.zhihu.com/zvideo/1994569653591229700/
https://www.zhihu.com/zvideo/1994569653993886152/
https://www.zhihu.com/zvideo/1994569654266532186/
https://www.zhihu.com/zvideo/1994569653578655542/
https://www.zhihu.com/zvideo/1994569653842907927/
https://www.zhihu.com/zvideo/1994569653675118687/
https://www.zhihu.com/zvideo/1994569647358506510/
https://www.zhihu.com/zvideo/1994569646762898236/
https://www.zhihu.com/zvideo/1994569647014577147/
https://www.zhihu.com/zvideo/1994569646167315608/
https://www.zhihu.com/zvideo/1994569645391376785/
https://www.zhihu.com/zvideo/1994569644510569158/
https://www.zhihu.com/zvideo/1994569643025777244/
https://www.zhihu.com/zvideo/1994569641603916999/
https://www.zhihu.com/zvideo/1994569641608102417/
https://www.zhihu.com/zvideo/1994569641595515416/
https://www.zhihu.com/zvideo/1994569640622453612/
https://www.zhihu.com/zvideo/1994569639607441023/
https://www.zhihu.com/zvideo/1994569639267702636/
https://www.zhihu.com/zvideo/1994569639645164124/
https://www.zhihu.com/zvideo/1994569637866784452/
https://www.zhihu.com/zvideo/1994569637778710888/
https://www.zhihu.com/zvideo/1994569638638531948/
https://www.zhihu.com/zvideo/1994569637694816654/

实时取流配置

通过NET_DVR_RealPlay_V40启动实时流,并设置回调函数接收帧数据:

# 回调函数定义(C类型) def real_data_cb(lRealHandle, dwDataType, pBuffer, dwBufSize, pUser): if dwDataType == NET_DVR_SYSHEAD: # 初始化FFMPEG解码器等(如需) pass elif dwDataType == NET_DVR_STREAMDATA: # 将数据转为OpenCV格式 frame_data = cast(pBuffer, POINTER(c_byte * dwBufSize)).contents frame_np = np.frombuffer(frame_data, dtype=np.uint8) frame = cv2.imdecode(frame_np, cv2.IMREAD_COLOR) cv2.imshow("Hikvision Stream", frame) cv2.waitKey(1) # 注册回调 REALDATACALLBACK = CFUNCTYPE(None, c_long, c_uint, POINTER(c_byte), c_uint, c_void_p) callback_func = REALDATACALLBACK(real_data_cb) # 启动实时流 play_params = NET_DVR_PREVIEWINFO() play_params.hPlayWnd = 0 play_params.lChannel = 1 # 通道号 play_params.dwStreamType = 0 # 主码流 play_params.dwLinkMode = 0 # TCP real_handle = hik_sdk.NET_DVR_RealPlay_V40(user_id, byref(play_params), callback_func, None)

帧处理与显示

在回调函数中完成帧数据到OpenCV格式的转换后,可进行图像处理:

# 示例:灰度化处理 gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow("Processed Frame", gray_frame)

释放资源

程序结束时需释放资源:

hik_sdk.NET_DVR_StopRealPlay(real_handle) hik_sdk.NET_DVR_Logout(user_id) hik_sdk.NET_DVR_Cleanup() cv2.destroyAllWindows()

注意事项

  • 确保设备网络可达,防火墙放行相应端口(默认8000)。
  • 海康SDK需与相机固件版本兼容,建议使用最新SDK。
  • 工业相机可能需要额外配置参数(如曝光、增益),通过NET_DVR_SetDVRConfig实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1156151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整指南:AUTOSAR架构图配置工具链使用

从零构建汽车电子系统&#xff1a;AUTOSAR架构图与配置工具链实战指南你有没有遇到过这样的场景&#xff1f;一个ECU项目刚进入集成阶段&#xff0c;不同团队交付的模块却因为信号命名不一致、数据类型错位、通信时序冲突而无法对接。调试数周后才发现&#xff0c;问题根源竟是…

STM32中HID协议通信的完整指南与配置步骤

从零构建STM32上的HID通信&#xff1a;不只是键盘鼠标那么简单 你有没有遇到过这样的场景&#xff1f;调试一块嵌入式板子&#xff0c;插上USB线后电脑弹出“未知设备”&#xff0c;提示要安装驱动。客户皱眉&#xff1a;“这玩意儿怎么这么麻烦&#xff1f;”——而隔壁同事的…

xTaskCreate与外设驱动集成:从零实现

从裸机到多任务&#xff1a;用xTaskCreate构建真正“活着”的嵌入式系统你有没有遇到过这样的场景&#xff1f;一个简单的温湿度采集项目&#xff0c;开始只是轮询读一下传感器、点个灯、串口打个日志。后来加了 LoRa 发送&#xff0c;再后来要支持远程配置命令&#xff0c;还要…

Windows系统下python新一代三方库管理工具uv及VSCode配置

安装 uv 工具uv 是 Rust 编写的 Python 工具链替代方案&#xff0c;支持快速依赖解析和虚拟环境管理。通过以下命令安装&#xff1a;pip install uv安装后可通过 uv --version 验证是否成功。使用 uv 管理虚拟环境创建并激活虚拟环境&#xff1a;uv venv .venv # 创建虚…

STM32主频提升秘诀:PLL高速时钟深度剖析

STM32主频提升实战指南&#xff1a;从PLL原理到CubeMX时钟树精调你有没有遇到过这样的情况&#xff1f;写好了复杂的FFT算法&#xff0c;信心满满地下载进STM32F407&#xff0c;结果发现数据处理延迟严重——一查才发现&#xff0c;CPU主频还停留在默认的16MHz HSI上&#xff0…

ST7789背光控制电路原理及典型应用解析

ST7789 背光控制&#xff1a;别再让“黑屏但耗电”坑了你的低功耗设计&#xff01;你有没有遇到过这种情况&#xff1f;系统进入睡眠模式&#xff0c;LCD 屏幕看起来是黑的&#xff0c;可电流表上的读数却迟迟下不来——明明关了显示&#xff0c;为啥还这么费电&#xff1f;如果…

企业考勤财务智能报表系统_SpringBoot+Vue+Springcloud微服务分布式

以下是关于企业考勤财务智能报表系统采用SpringBootVueSpringCloud微服务分布式架构的技术实现方案&#xff1a;技术架构设计后端采用SpringCloud Alibaba微服务套件&#xff08;Nacos注册中心、Sentinel流量控制、Seata分布式事务&#xff09;&#xff0c;前端使用Vue3Element…

上线前检查清单模板及工具指南:告别手忙脚乱,实现稳定发布

周五下午6点&#xff0c;所有人都盯着屏幕&#xff1a;“数据库脚本执行了吗&#xff1f;”“配置文件更新了没有&#xff1f;”“监控告警设置了么&#xff1f;”——这些问题像复读机一样在会议室回响。而最可怕的是&#xff0c;上线后发现&#xff1a;“完了&#xff0c;有个…

互联网大厂Java面试:从Java SE到微服务的技术深度剖析

场景描述 在互联网大厂的一次Java面试中&#xff0c;程序员谢飞机面对严肃的面试官&#xff0c;开始了一场技术上的较量。面试官精心准备了一系列从Java SE到微服务的技术问题&#xff0c;涵盖了广泛的技术栈&#xff0c;包括Java语言、构建工具、web框架以及微服务架构等。 第…

IP6559至为芯支持AC双口快充的100W升降压车充方案SOC芯片

英集芯IP6559是一款应用于车载充电器、快充适配器、智能排插等设备的升降压SOC芯片&#xff0c;支持AC双口输出&#xff0c;单口最大100W&#xff0c;可实现单口快充或双口同时输出。支持3.6V至31V的输入电压&#xff0c;兼容12V至24V车充输入。兼容PD3.0 PPS、QC2.0/3.0、华为…

proteus仿真51单片机入门必看:手把手搭建第一个仿真工程

从零开始玩转51单片机&#xff1a;用Proteus搭建你的第一个仿真工程你是不是也有过这样的经历&#xff1f;想学单片机&#xff0c;买了一堆开发板、下载器、面包板&#xff0c;结果焊错了线、烧了芯片&#xff0c;调试半天也没跑通一个LED闪烁程序。最后&#xff0c;热情被一点…

项目应用中AUTOSAR网络管理常见问题汇总

AUTOSAR网络管理实战避坑指南&#xff1a;从状态机到“乒乓唤醒”的深度解析一场由胎压传感器引发的深夜“心跳”凌晨两点&#xff0c;某车型在停泊测试中被监控系统捕捉到异常——整车电流每隔3秒就突然跃升至80mA&#xff0c;持续5秒后回落&#xff0c;如此循环长达20分钟。售…

紧急Bug处理:流程、四阶段控制法及工具方法

一、核心原则与分级标准紧急Bug处理的第一要务是控制影响&#xff0c;而非追求完美。必须建立明确的优先级判断标准&#xff0c;避免在压力下做出错误决策。四级分类法提供快速定级依据&#xff1a;P0致命级&#xff1a;核心业务中断&#xff0c;需立即停下手头一切工作处理&am…

[特殊字符]_可扩展性架构设计:从单体到微服务的性能演进[20260113164432]

作为一名经历过多次系统架构演进的老兵&#xff0c;我深知可扩展性对Web应用的重要性。从单体架构到微服务&#xff0c;我见证了无数系统在扩展性上的成败。今天我要分享的是基于真实项目经验的Web框架可扩展性设计实战。 &#x1f4a1; 可扩展性的核心挑战 在系统架构演进过…

每次改老代码都提心吊胆?4种遗留代码的对症药方和必备工具

许多人认为遗留代码只是“老旧的代码”&#xff0c;但实际上&#xff0c;遗留代码管理关乎整个技术体系的健康度与团队的长期效率。忽视遗留代码会导致以下几个核心问题&#xff1a;• 技术债务持续累积&#xff1a;每次因赶工期而写的临时代码&#xff0c;都会在未来产生利息 …

智能环境监测仪:proteus数码管实时数据显示教程

从仿真到实战&#xff1a;如何用Proteus实现智能环境监测仪的数码管实时显示你有没有遇到过这样的情况&#xff1f;想做一个能测温湿度的小设备&#xff0c;但还没买开发板、没焊电路&#xff0c;代码写好了却不知道能不能跑通&#xff1f;调试时发现数码管闪烁、乱码&#xff…

SSD1306驱动开发:手把手教程(从零实现)

从零实现SSD1306 OLED驱动&#xff1a;不只是“点亮屏幕”那么简单你有没有遇到过这种情况&#xff1f;手头一块0.96英寸的OLED屏&#xff0c;接上STM32或ESP32后&#xff0c;照着网上的代码一通复制粘贴&#xff0c;结果——黑屏、花屏、只亮一半……最后只能求助于“玄学调试…

提示工程架构师避坑指南:智能化提示响应体系常见误区与解决方案

提示工程架构师避坑指南&#xff1a;智能化提示响应体系常见误区与解决方案 一、引入与连接&#xff1a;当“完美提示”遭遇现实的暴击 小李是某AI公司的提示工程架构师&#xff0c;上周他刚完成一套“电商客服提示体系”的设计。测试时&#xff0c;AI对“订单什么时候到”的回…

⚡_实时系统性能优化:从毫秒到微秒的突破[20260113165144]

作为一名专注于实时系统性能优化的工程师&#xff0c;我在过去的项目中积累了丰富的低延迟优化经验。实时系统对性能的要求极其严格&#xff0c;任何微小的延迟都可能影响系统的正确性和用户体验。今天我要分享的是在实时系统中实现从毫秒到微秒级性能突破的实战经验。 &#…

字节 2025 绩效考评开始,新调整来了!

大家好&#xff0c;我是鸭鸭&#xff01; 字节一年两度的绩效考核要开始了。在字节的同学&#xff0c;应该上周四就收到了全员信&#xff1a;2026 年 1 月 15 日将启动全年绩效评估。 又到了发钱的时候&#xff01;虽然不能进鸭鸭兜里&#xff0c;但想想还是有点小激动呢&…