在 LabVIEW 中实现对图像上绘制的单个或多个任意形状 ROI(感兴趣区域)的保存及重新加载到原位置的功能。

实现方案
ROI 数据的保存与读取原理
通过属性节点获取 ROI 数据,将其写入二进制文件实现保存
从二进制文件中读取 ROI 数据,再通过属性节点加载到图像上
操作步骤
保存 ROI:获取 ROI 数据→构建文件路径→写入二进制文件
加载 ROI:从二进制文件读取数据→将数据设置到图像的 ROI 属性
清除 ROI:通过调用节点(Invoke Node)执行清除操作
文件路径
使用 "Build Path VI" 构建完整文件路径,如将 "ROI.bin"(二进制文件名)与系统目录组合
同一文件路径同时用于写入和读取操作,确保加载的是刚保存的 ROI 数据
可根据需求修改保存路径,如使用应用程序目录实现相对路径存储
程序建议
采用事件结构(Event Structure)配合循环实现交互操作
在超时事件中处理摄像头视频流(如设置 10ms 超时)
创建 "保存 ROI"、"加载 ROI" 等按钮及其对应事件处理程序
可使用扁平序列结构控制操作顺序(如清除 ROI 后等待一段时间用于演示)
常见问题
ROI 不被实时识别:原因为读写代码仅在程序启动时执行一次,需改用事件结构实现运行中响应
清除 ROI 功能:通过调用节点(而非属性节点)实现,用于执行 "清除" 动作
多 ROI 与实时视频:将视频捕获与 ROI 操作分离,通过按钮事件触发保存 / 加载,确保视频流持续运行
区分属性节点(用于设置 / 获取属性)和调用节点(用于执行动作)的使用场景
利用事件结构实现交互式操作,满足实时视频流中动态处理 ROI 的需求
二进制文件格式适合存储 ROI 原始数据,保证数据完整性和读写效率
楼主最近还看过


客服
小程序
公众号