ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

两大视觉平台在“在线采图”这一步,**设计哲学截然不同**:VisionMaster 是“配置好的相机,拖个模块就能取图”;Halcon 是“用一套算子,去适配所有相机”

两大视觉平台在“在线采图”这一步,**设计哲学截然不同**:VisionMaster 是“配置好的相机,拖个模块就能取图”;Halcon 是“用一套算子,去适配所有相机” 两大视觉平台在“在线采图”这一步设计哲学截然不同VisionMaster 是“配置好的相机拖个模块就能取图”Halcon 是“用一套算子去适配所有相机”。这种差异不仅体现在操作习惯上更深刻影响着项目的开发效率、调试方式与后期维护成本。下面从两个平台各自的实现路径展开帮你在选型时做出更贴合实际需求的判断。VisionMaster相机管理 图像源模块VisionMaster 把“连接相机”和“采图”拆成了两个独立步骤这是新手最容易卡住的地方。第一步相机管理里“登记”相机。打开 VisionMaster 后需要在“相机管理”页面手动添加全局相机。点击“”选择相机如果列表里没有点刷新。这里有个关键细节必须先在 MVS 软件里确认相机在线且能取流VisionMaster 才能枚举到它。如果 MVS 已经占用了相机VisionMaster 可能连不上需要先关闭 MVS 的采集流。第二步流程里拖“图像源”模块。在左侧工具箱的“采集”分组里把“图像源”模块拖到流程中双击打开参数配置在“关联相机”下拉框里选择刚刚添加的全局相机。然后在“触发设置”里把触发源改为 SOFTWARE软触发或者根据产线需要设为硬触发。第三步点击“流程运行”或“单次执行”图像就出现在预览窗口了。VisionMaster 的采图逻辑是面向配置的相机是一个“资源”图像源是一个“模块”两者在流程中通过下拉关联。对海康自家相机有深度优化内置了海康 SDK 的集成枚举和连接都很顺畅。Halcon图像采集接口IAI统一抽象Halcon 本身不“认识”任何相机品牌它通过图像采集接口Image Acquisition Interface, IAI来桥接。每个接口是一个动态加载的 DLL把不同厂商 SDK 的差异“翻译”成 Halcon 统一的算子。核心算子只有两个open_framegrabber负责连接设备grab_image或grab_image_async负责取图。用open_framegrabber时第一个参数AcqName指定接口名称。对于 GigE 相机填GigEVision2对于海康相机只要 Halcon 安装了 GigE Vision2 接口就能通过标准协议连接不需要海康自己的驱动。连接成功后得到一个AcqHandle后续所有取图操作都用这个句柄。取图模式有三种SingleFrame单次、MultiFrame指定次数、Continuous连续。设置AcquisitionMode参数来切换。连续采集时调用grab_image_start启动然后用grab_image_async循环取图并立即启动下一帧这是高帧率场景的标准写法。最省事的方式是用“图像采集助手”在 HDevelop 里打开助手选GigEVision2接口点连接、点采集实时画面就出来了助手会自动生成对应的算子代码直接复制到程序里就行。关键差异一览维度VisionMasterHalcon接入方式相机管理 图像源模块拖拽关联open_framegrabbergrab_image算子相机发现依赖 MVS 先枚举VM 下拉选择通过 IAI 接口直接枚举品牌覆盖海康相机深度优化3000 种工业相机参数调节GUI 属性面板set_framegrabber_param算子典型误区MVS 占用相机导致 VM 连不上忘装对应接口如 GigEVision2导致列表为空实操要点VisionMaster 侧确保MVS 没有在采集流否则 VM 连不上相机。触发源设为 SOFTWARE 时需要手动点“执行”才出一帧设为 CONTINUOUS 则连续出图。Halcon 侧如果open_framegrabber报错说找不到接口说明该接口 DLL 没安装需要通过 MVTec 软件管理器SOM安装比如GigEVision2接口。连接 3D 相机时接口名称可能不同如 RealSense 用RealSense且部分功能可能受限。一句话总结VisionMaster 是“先让 MVS 把相机管好VM 再拖模块取图”Halcon 是“选对接口名用算子直接连”。前者适合海康生态快速落地后者适合多品牌混合的算法密集型项目。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进