海康威视工业相机SDK二次开发_python-2026_5.14
目录一、相机运行环境需求推荐配置最低配置GenTL管理加载cti文件事件监视一、前期准备工作1、硬件2、软件3、网络配置找的你的mvs的安装路径二、前期笔记本直连相机调试阶段2.1 拓扑图前期2.2 通讯方式与原理2.4 前期准备工作三、后期交换机上位机通讯组网阶段3.1 拓扑图后期3.2 通讯方式与原理3.4 后期准备工作硬件准备网络配置软件/协议准备测试步骤四、通讯细节交换机环境下的数据包流向一、硬件连接拓扑图ASCII二、网络配置必须一致三、数据流与交互流程文字步骤版步骤 1笔记本采集图像步骤 2YOLOv8 检测步骤 3生成检测结果JSON 格式步骤 4通过 TCP 发送给上位机步骤 5上位机接收与处理四、各环节通讯与数据流向示意图五、需要做的准备工作硬件准备软件准备六、总结网口相机管理以下文字内容来源官网 工业相机客户端MVS自用做记录写的乱可以看其他人的一、实际操作海康相机遇到问题记录1、图像存放位置及图像、视频格式及存储路径在设置里面找到录像抓图2、显示图像太暗增加曝光时间找到Feature Tree/Acquisition/Exposure Time适度增加直接调成中文看属性3、调节数字增益当是2.76的时候是如下图较暗当是数字增益是9的时候是如下图较亮适度调节看你的最终图像质量自己试出来效果可以的如下图参数在模拟控制里面调试一、相机运行环境需求推荐配置操作系统Windows 7/10/1132/64位CPUIntel Pentium IV 3.0 GHz及以上内存4 GB及以上显示分辨率 640 × 480或更高分辨率网卡推荐Intel Pro1000、I210和I350系列千兆网卡USBUSB3.0接口最低配置操作系统Windows 7/10/1132/64位CPUIntel Pentium IV 2.0 GHz内存1 GB显示分辨率640 × 480网卡千兆网卡USBUSB3.0接口GenTL管理GenTL标准提供一个统一的接口不仅可对采集卡进行参数控制还可使客户端在不依赖于底层传输技术的情况下连接相机与相机通信甚至直接获取相机采集的数据。加载cti文件设备列表选中GenTL单击手动选择需要的cti文件后单击打开即可枚举该cti文件下的所有采集卡。加载cti文件后可通过设备列表GenTL右侧的手动刷新枚举到的采集卡。客户端提供的cti文件路径为C:\Program Files (x86)\Common Files\MVS\Runtime 请根据电脑实际系统类型选择路径下的文件夹。事件监视事件监视功能可对网口相机、U3V相机以及采集卡的事件信息进行记录并查看。网口相机、U3V相机或采集卡为打开状态且支持事件控制功能。新版本不同需要的核心文件是MvImport 文件夹下的 MvCameraControl_class.py 和 MvCameraControl.dll以及依赖的库文件。MvCameraControl_class.py 就是 Python 调用的包装类相当于旧版本的 MvCamera.py。一、前期准备工作1、硬件笔记本Windows系统已安装网卡驱动海康工业相机MV-CU060-10GC 电源适配器 网线2、软件下载并安装 海康机器视觉软件MVS用于修改相机IP、测试预览。安装Python环境如Anaconda并安装 opencv-python, numpy, ultralytics。将MVS SDK中的Python接口文件MvImport文件夹复制到自己的工程目录py文件目录用来采集图像和yolo检测用3、网络配置用MVS扫描相机 → 将相机IP改为静态IP如 192.168.1.100。将笔记本网卡IP设置为同一网段如 192.168.1.101。关闭Windows防火墙或放行GigE Vision端口。找的你的mvs的安装路径C:\anzhuang\haikangweishi\MVS\Development\Samples\Python\MvImport把MvImport整个文件都复制到自己的工程目录下py文件目录用来采集图像和yolo检测用二、前期笔记本直连相机调试阶段2.1 拓扑图前期text[海康工业相机] [笔记本] │ │ └─── 网线 ─────────┘2.2 通讯方式与原理物理层相机通过网线直接插入笔记本的RJ45网口若笔记本无网口可使用USB千兆网卡。数据链路层GigE Vision协议基于标准以太网数据包通过TCP/IP或UDP传输。相机作为GigE Vision设备拥有固定的出厂或配置的IP地址。网络层相机与笔记本必须处于同一子网例如相机IP为192.168.1.100笔记本IP设置为192.168.1.101。默认情况下相机可能为169.254.x.xLLA需要通过MVS软件手动修改为静态IP。应用层Python程序通过海康MvSDKMvCameraControl_class.py向相机发送指令如MV_CC_StartGrabbing相机根据协议将图像数据打包为GigE Vision包发送给笔记本SDK解包后供YOLOv8处理。2.4 前期准备工作硬件笔记本Windows系统已安装网卡驱动海康工业相机MV-CU060-10GC 电源适配器 网线软件下载并安装海康机器视觉软件MVS用于修改相机IP、测试预览。安装Python环境如Anaconda并安装opencv-python,numpy,ultralytics。将MVS SDK中的Python接口文件MvImport文件夹复制到的工程目录。网络配置用MVS扫描相机 → 将相机IP改为静态IP如192.168.1.100。将笔记本网卡IP设置为同一网段如192.168.1.101。关闭Windows防火墙或放行GigE Vision端口。三、后期交换机上位机通讯组网阶段3.1 拓扑图后期[海康工业相机] [上位机 / 其他硬件] │ │ └───── [ 绿联5口百兆交换机 ] ──────┘ │ [笔记本]3.2 通讯方式与原理物理连接相机、笔记本、上位机都连接到交换机的任意端口。交换机自动转发数据包实现星型拓扑。网络层所有设备配置同一子网例如192.168.1.0/24设备间可直接通过IP地址互相访问。数据流向方案笔记本从相机实时拉取图像在本地运行YOLOv8检测将检测结果如坐标、类别、时间戳等通过TCP发送给上位机。交换机的角色只是物理层/数据链路层的透明转发器不参与IP配置。所有设备需要在网络层IP地址和传输层端口上明确通信关系。3.4 后期准备工作硬件准备一台绿联五口百兆以太网交换机另外准备足够长度的网线。上位机可以是另一台电脑、工控机、PLC或嵌入式板卡需支持TCP/UDP通信。确保相机、笔记本、上位机都插到交换机的不同端口。网络配置使用MVS软件将相机IP固定如192.168.1.100。笔记本网卡IP设为192.168.1.101。上位机IP设为192.168.1.102。所有子网掩码保持一致一般为255.255.255.0且网关可留空。软件/协议准备笔记本端原有Python程序保持不变增加一个结果发送模块。推荐方案TCP客户端连接上位机的监听端口发送JSON上位机端如果使用TCP需编写一个TCP服务端如用Python的socket模块建议测试阶段使用TCP最简单可靠正式系统可选用MQTT实现解耦和可扩展性。测试步骤连接好交换机所有设备通电。在笔记本上用ping 192.168.1.102检查与上位机的连通性。在上位机上运行TCP服务端可用Netcat或编写简单服务端测试。在笔记本上运行您的Python程序确认相机工作正常同时将结果发往上位机。四、通讯细节交换机环境下的数据包流向在交换机环境下相机和笔记本之间的GigE Vision数据流不经过上位机只经过交换机转发。如果希望上位机也能获取到原始图像有几种方法多播配置相机发送多播数据流交换机将数据包复制发送到所有订阅了该多播组的设备包括上位机。笔记本和上位机同时接收图像。缺点百兆交换机多播可能导致拥塞需要确认交换机支持IGMP Snooping。二次转发笔记本收到图像后通过TCP/UDP将图像转发给上位机会额外增加CPU和网络负载。最常用、最稳定的方案是笔记本采集、检测只将检测结果轻量数据通过交换机发给上位机。这样百兆网络完全够用。*****************************************************************************************************一、硬件连接拓扑图ASCIItext[海康工业相机] [笔记本] [上位机] │ │ │ │ (网线) │ (网线) │ (网线) │ │ │ └─────── [5口百兆交换机] ────────────┘说明相机、笔记本、上位机各自用网线连接到交换机的任意端口。所有设备通过交换机形成同一个局域网。二、网络配置必须一致设备IP地址子网掩码网关相机192.168.1.100255.255.255.0可选笔记本192.168.1.101255.255.255.0可选上位机192.168.1.102255.255.255.0可选操作步骤通过 MVS 软件将相机 IP 改为192.168.1.100笔记本网卡手动设置为192.168.1.101上位机网卡手动设置为192.168.1.102在笔记本上执行ping 192.168.1.102验证连通性三、数据流与交互流程文字步骤版步骤 1笔记本采集图像笔记本运行 Python 程序通过MvCamera接口与相机建立连接调用MV_CC_StartGrabbing()开始采集循环调用MV_CC_GetOneFrameTimeout()获取一帧图像BGR格式步骤 2YOLOv8 检测将 BGR 图像送入 YOLOv8 模型推理解析检测结果类别、置信度、坐标、b0/b1 标签等步骤 3生成检测结果JSON 格式将检测信息封装为 JSON 字符串例如json{ frame_id: 100, timestamp: 2026-05-14 15:30:22, b_label: b1, detections: [ {class: b, conf: 0.92, box: [100, 200, 150, 250]}, {class: y, conf: 0.85, box: [300, 400, 350, 450]} ] }步骤 4通过 TCP 发送给上位机笔记本作为TCP 客户端连接到上位机的指定端口如192.168.1.102:8000将 JSON 数据序列化后通过socket.send()发送发送完成后关闭连接或保持长连接根据实际需求步骤 5上位机接收与处理上位机运行TCP 服务端监听8000端口收到数据后解析 JSON 并记录到数据库、显示在界面、或触发报警等四、各环节通讯与数据流向示意图text┌─────────────────────────────────────────────────────────────────────┐ │ 笔记本端 │ │ │ │ [相机拉流] → [YOLOv8推理] → [生成JSON] → [TCP客户端发送] │ │ ↑ ↑ ↓ │ │ │ │ │ │ │ (GigE Vision) (内部处理) (TCP协议) │ │ │ │ │ │ │ └──────────────────────┴──────────────────┘ │ │ │ │ │ ▼ │ │ [交换机] │ │ │ │ │ ▼ │ │ [TCP服务器接收] → [数据解析] → [应用处理] │ │ │ │ 上位机端 │ └─────────────────────────────────────────────────────────────────────┘五、需要做的准备工作硬件准备绿联 5 口百兆交换机3 根网线足够长上位机可用另一台笔记本/工控机/树莓派等软件准备笔记本端保持原有hik_camera.pyhik_detection.py额外增加 TCP 发送模块。上位机端编写或准备一个 TCP 接收程序Python、C#、LabVIEW、Node-RED 等均可六、总结阶段流程通讯协议核心配置笔记本直连调试相机 ↔ 笔记本GigE VisionIP 同网段交换机上位机组网相机 ↔ 交换机 ↔ 笔记本 ↔ 交换机 ↔ 上位机TCP GigE Vision所有设备同网段上位机监听端口最关键的准备工作所有设备设置同一网段例如 192.168.1.x。笔记本与上位机之间通过 TCP 交互检测结果轻量数据。上位机运行 TCP 服务端笔记本运行 TCP 客户端。1、开发需基于官方SDK文档从海康威视官网获取最新版本的SDK开发包首先安装完成在帮助里面找到Development网口相机管理设备列表区域的GigE接口可对网口相机进行相关操作例如添加相机、显示相机、修改IP地址、组播配置等。也可以在你的安装路径查找