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

安装海康SDK

从海康威视官网下载对应的工业相机SDK(如MV-SDK),解压后运行安装程序。确保安装路径无中文或特殊字符。安装完成后,将SDK的lib目录添加到系统环境变量(如Windows的PATH),或直接复制*.dll文件到Python脚本同级目录。

配置Python依赖

安装Python与海康SDK交互的库,通常通过ctypes调用动态链接库。确保Python版本与SDK的位数一致(32/64位)。示例安装命令:

pip install numpy opencv-python # 可选,用于图像处理 

初始化SDK与设备

通过ctypes加载SDK动态库,并调用初始化函数。示例代码:

import ctypes # 加载SDK库 sdk_lib = ctypes.cdll.LoadLibrary("MvCameraControl.dll") # 初始化设备 device_list = ctypes.c_void_p() sdk_lib.MV_CC_EnumDevices(ctypes.byref(device_list)) 

打开相机并设置参数

选择设备并打开连接,配置采集参数(如分辨率、曝光时间):

# 选择第一个设备 handle = ctypes.c_void_p() sdk_lib.MV_CC_CreateHandle(ctypes.byref(handle), device_list) # 打开设备 ret = sdk_lib.MV_CC_OpenDevice(handle) if ret != 0: raise RuntimeError("Failed to open device") # 设置参数(示例:曝光时间) exposure_time = ctypes.c_float(1000.0) sdk_lib.MV_CC_SetFloatValue(handle, "ExposureTime", exposure_time) 

开始采集图像

启动相机采集并获取图像数据流:

# 开始采集 sdk_lib.MV_CC_StartGrabbing(handle) # 获取图像数据 data_buf = (ctypes.c_ubyte * 1024 * 1024)() # 缓冲区 frame_info = ctypes.create_string_buffer(1024) ret = sdk_lib.MV_CC_GetOneFrameTimeout(handle, data_buf, len(data_buf), frame_info, 1000) if ret != 0: raise RuntimeError("Failed to grab frame") 

转换与显示图像

将原始数据转换为OpenCV格式并显示:

import numpy as np import cv2 # 转换为numpy数组 img_data = np.frombuffer(data_buf, dtype=np.uint8) img = cv2.imdecode(img_data, cv2.IMREAD_COLOR) # 显示图像 cv2.imshow("Industrial Camera", img) cv2.waitKey(0) 


 

释放资源

停止采集并关闭设备:

# 停止采集 sdk_lib.MV_CC_StopGrabbing(handle) # 关闭设备 sdk_lib.MV_CC_CloseDevice(handle) sdk_lib.MV_CC_DestroyHandle(handle) 

注意事项

  • 确保SDK版本与相机型号匹配,部分函数名可能因版本不同存在差异。
  • 错误处理需检查每个API调用的返回值,海康SDK通常返回0表示成功。
  • 多线程环境下需加锁或使用回调机制处理图像数据。

Read more

【PX4+ROS完全指南】从零实现无人机Offboard控制:模式解析与实战

【PX4+ROS完全指南】从零实现无人机Offboard控制:模式解析与实战

引言 无人机自主飞行是机器人领域的热门方向,而PX4作为功能强大的开源飞控,配合ROS(机器人操作系统)的灵活性与生态,成为实现高级自主飞行的黄金组合。然而,许多初学者对PX4的飞行模式理解不清,更不知道如何通过ROS编写可靠的Offboard控制程序。 本文将带你彻底搞懂PX4 6大核心飞行模式,实现无人机的自动起飞、悬停、轨迹跟踪(圆形/方形/螺旋)与降落。 亮点一览: * ✅ 深度解析PX4飞行模式(稳定/定高/位置/自动/Offboard) * ✅ 明确ROS可控制的模式与指令接口 * ✅ 完整的ROS功能包(C++实现,状态机设计) * ✅ 支持位置控制与速度控制双模式 * ✅ 内置圆形、方形、螺旋轨迹生成器 * ✅ 详细的安全机制与失效保护配置 无论你是准备参加比赛、做科研,还是想入门无人机开发,这篇文章都将是你宝贵的参考资料。 第一部分:PX4飞行模式深度剖析 PX4的飞行模式可以看作一个控制权逐级递增的层级结构。理解这些模式是编写控制程序的前提。 1. 稳定模式(STABILIZED / MANUAL / ACRO) * 核心特点:

By Ne0inhk
FPGA中扇出数目是什么意思

FPGA中扇出数目是什么意思

目录 一、核心定义 二、一个生动的比喻 三、为什么扇出在FPGA中如此重要? 四、FPGA与ASIC在扇出处理上的区别 五、如何优化高扇出? 六、总结 一、核心定义 扇出 指的是:一个逻辑单元的输出信号,直接驱动多少个其他逻辑单元的输入。 简单来说,就是 “一个输出能带多少个负载(输入)”。 二、一个生动的比喻 你可以把一个逻辑单元(比如一个触发器的输出)想象成一个音响,而把它要驱动的其他逻辑单元的输入想象成耳机。 * 低扇出:就像这个音响只连接了2-3个耳机。每个耳机都能获得清晰、强劲的声音(信号),而且音响本身很轻松。 * 高扇出:就像这个音响通过一大堆分线器,同时连接了500个耳机。这时,每个耳机听到的声音都会变得非常微弱(信号变差),而且音响可能会因为负载过重而发热、失真甚至损坏。 在FPGA中,“声音微弱和失真”对应的就是 “信号延迟增加” 和 “信号波形变差(斜率下降)

By Ne0inhk
【大模型应用篇】用 OpenClaw + 飞书打造 7x24 小时服务器运维机器人

【大模型应用篇】用 OpenClaw + 飞书打造 7x24 小时服务器运维机器人

前言 本文基于OpenClaw,也是最近超火的可在本地运行的AI Agent网关,记录从零搭建通过飞书对话管理服务器运维机器人的全过程。该机器人支持随时随地通过飞书查看服务器状态、检索日志、管理进程,其核心机制在于:由OpenClaw将聊天平台(飞书等)的消息路由至大模型,模型调用本地工具(如Shell、文件系统、浏览器)执行相应任务,最终将结果自动返回至飞书会话中,实现自动化运维交互。 架构概览 飞书 App (WebSocket 长连接)         ↕ OpenClaw Gateway (服务器上 systemd 常驻)         ↕ AI 模型 (DeepSeek v3.2/GLM 4.7)         ↕ 服务器 Shell (受白名单限制的命令执行) 核心组件: * OpenClaw Gateway:Agent 网关,管理会话、工具调用、渠道连接 * 飞书插件:通过

By Ne0inhk
【Part 4 XR综合技术分享】第一节|技术上的抉择:三维实时渲染与VR全景视频的共生

【Part 4 XR综合技术分享】第一节|技术上的抉择:三维实时渲染与VR全景视频的共生

《VR 360°全景视频开发》专栏 将带你深入探索从全景视频制作到Unity眼镜端应用开发的全流程技术。专栏内容涵盖安卓原生VR播放器开发、Unity VR视频渲染与手势交互、360°全景视频制作与优化,以及高分辨率视频性能优化等实战技巧。 📝 希望通过这个专栏,帮助更多朋友进入VR 360°全景视频的世界! Part 4|XR综合技术分享 最后一Part了,我将分享一些关于当前常用的XR综合技术,内容涵盖三维实时渲染与全景视频的共生、多模态交互体验的融合,以及AI如何深度赋能XR应用,推动智能化发展。同时畅想通向全感知XR智能沉浸时代的未来,探索如何通过更先进的技术不断提升用户体验。毕竟,360°全景视频仅是XR应用中的冰山一角。 第一节|技术上的抉择:三维实时渲染与VR全景视频的共生 文章目录 * 《VR 360°全景视频开发》专栏 * Part 4|XR综合技术分享 * 第一节|技术上的抉择:三维实时渲染与VR全景视频的共生 * 1、VR内容形态的分化与融合 * 1.1 三维实时渲染的发展 * 1.2

By Ne0inhk