2. MERLIC开发环境与工程结构
MERLIC 的工程化能力,首先体现在它的开发环境组织方式上。与传统的通用视觉软件不同,MERLIC 把“工具”作为流程的基本单元,把“图像”作为数据载体,把“变量”作为工具之间传递信息的通道。理解这套环境,是后续搭建可维护、可复用视觉流程的前提。本节从界面布局入手,逐层拆解工具箱、流程编辑器、图像窗口、变量与结果面板,再落到工程目录与文件类型,帮助读者建立“界面—流程—文件”三层对应的整体认知。
一、主界面布局:五个功能区各司其职
MERLIC Creator 启动后,主界面大致分为五个区域。左侧是工具箱(Toolbox),按类别列出所有可用工具,例如图像采集、预处理、定位、测量、检测、标定等。中间上方是流程编辑器(Recipe Editor),以图形化方式展示工具之间的连接关系。中间下方或右侧是图像窗口(Image Window),用于显示当前工具处理前后的图像、ROI 和结果叠加。右侧是变量与结果面板(Variables & Results),列出当前流程中所有工具的输入输出变量及其数值。顶部是菜单与工具栏,包含新建、保存、运行、单步执行、停止等控制按钮。
这五个区域不是孤立的:工具箱决定“能做什么”,流程编辑器决定“怎么连”,图像窗口决定“看到什么”,变量与结果面板决定“数据是什么”,工具栏决定“何时执行”。理解它们之间的联动关系,比记住每个按钮的位置更重要。
二、工具箱:工具的分类与选择逻辑
MERLIC 的工具箱按功能域分类,常见类别包括:图像采集(AcquireImage、LoadImage)、预处理(Filter、Morphology)、定位(Locate、Align)、测量(Measure、Calibrate)、检测(Check、Blob)、通信(TCP/IP、PLC)等。每个工具在流程编辑器中表现为一个节点,节点上带有输入端口和输出端口。输入端口接收图像或变量,输出端口产生结果变量。
选择工具时,应遵循“先定位、后测量、再判定”的常规顺序。例如,若要对工件上的孔位进行直径测量,先使用 Locate 工具找到工件基准,再用 Measure 工具在基准坐标系下测量孔径,最后用 Check 工具判断直径是否在公差范围内。工具之间的连接不是随意的,而是由数据依赖关系决定:下游工具的输入必须来自上游工具的输出或已定义的常量。
三、流程编辑器:图形化连接与执行顺序
流程编辑器是 MERLIC 的核心工作区。每个工具节点包含工具名称、工具类型和参数摘要。节点之间的连线表示数据流方向,箭头从输出端口指向输入端口。MERLIC 按照数据依赖关系自动确定执行顺序,而不是简单按从左到右排列。如果两个工具之间没有数据依赖,它们的执行顺序可能并行或按内部调度决定。
在流程编辑器中,可以右键节点进行重命名、禁用、删除或查看参数。禁用节点(Disable)是一个实用功能:在调试阶段,可以临时关闭某个工具,观察其对下游结果的影响,而不必删除节点和重新连线。单步执行(Step)则允许逐个工具运行,配合图像窗口和变量面板,可以精确定位问题出现在哪个环节。
四、图像窗口与变量结果面板:观察与验证
图像窗口显示当前选中工具的输出图像。如果选中采集工具,显示原始图像;如果选中测量工具,显示带有测量线、拟合结果和数值标注的图像。图像窗口支持缩放、平移和 ROI 编辑。ROI(感兴趣区域)是许多工具的必要输入,可以在图像窗口中以矩形、圆形、环形或多边形方式绘制。
变量与结果面板列出当前流程中所有变量的名称、类型和当前值。工具的输出变量会自动注册到面板中,例如 Locate 工具输出 PositionX、PositionY、Angle,Measure 工具输出 Width、Diameter 等。这些变量可以被下游工具引用,也可以绑定到通信接口输出给外部系统。面板中的值在每次运行后刷新,是判断流程是否按预期工作的直接依据。
五、MERLIC 工程的目录组织与文件类型
一个 MERLIC 工程在磁盘上是一个文件夹,内部包含若干子目录和文件。典型结构如下:
MyProject/
├── MyProject.mvproject # 工程主文件,记录流程、变量和界面配置
├── Images/ # 采集或导入的图像文件
│ ├── sample_001.png
│ └── sample_002.png
├── Calibration/ # 标定数据
│ └── camera_calib.mvcalib
├── Tools/ # 自定义工具或工具配置
│ └── custom_tool.mvtool
├── Results/ # 运行结果输出
│ └── result_log.csv
└── Config/ # 通信与运行配置
└── communication.json
其中,.mvproject 是工程主文件,保存流程结构、工具参数、变量定义和界面布局。它不直接存储图像数据,而是引用 Images 目录中的文件或相机采集配置。.mvcalib 是标定文件,保存相机内参、畸变系数或手眼标定矩阵。.mvtool 是自定义工具文件,用于封装可复用的工具组合。Results 目录通常由流程运行时写入,保存检测结果、日志或统计信息。Config 目录保存通信协议、PLC 地址映射或运行参数。
理解目录组织的意义在于:工程迁移时,不能只复制 .mvproject 文件,还需要一并复制 Images、Calibration 和 Config 等依赖目录,否则流程可能因找不到图像或标定数据而报错。在团队协作中,建议将工程目录纳入版本管理,但图像和结果文件可根据需要排除或使用样本数据替代。
六、从界面到文件的对应关系
把界面操作与文件变化对应起来,有助于建立完整的工程认知:在流程编辑器中添加工具并连线,保存后写入 .mvproject;在图像窗口中绘制 ROI 并调整参数,同样写入 .mvproject;运行流程产生的结果,根据配置写入 Results 目录或通过通信接口发送;标定操作生成 .mvcalib 文件,被测量工具引用。界面是操作入口,文件是持久化结果,变量是两者之间的数据纽带。