通用视觉工具模块-打散模块-3-后端实现
通用视觉工具模块-打散模块-3-后端实现一 执行和确认命令/// summary/// 执行命令/// /summary[NonSerialized]privateCommandBase_ExecuteCommand;publicCommandBaseExecuteCommand{get{if(_ExecuteCommandnull){_ExecuteCommandnewCommandBase((obj){ExeModule();});}return_ExecuteCommand;}}/// summary/// 确认/// /summary[NonSerialized]privateCommandBase_ConfirmCommand;publicCommandBaseConfirmCommand{get{if(_ConfirmCommandnull){_ConfirmCommandnewCommandBase((obj){varviewthis.ModuleViewasThresholdView;// 关闭界面if(view!null){view.Close();}});}return_ConfirmCommand;}}二 链接命令/// summary/// 参数变化回调函数/// /summary/// param nameobj/paramprivatevoidOnVarChanged(VarChangedEventParamModelobj){switch(obj.SendName.Split(,)[1]){caseInputRegionLink:InputRegionLinkTextobj.LinkName;break;default:break;}}[NonSerialized]privateCommandBase_LinkCommand;publicCommandBaseLinkCommand{get{if(_LinkCommandnull){//以GUID类名作为筛选器EventMgr.Ins.GetEventVarChangedEvent().Subscribe(OnVarChanged,oo.SendName.StartsWith(${ModuleGuid}));_LinkCommandnewCommandBase((obj){eLinkCommandlinkCommand(eLinkCommand)obj;switch(linkCommand){caseeLinkCommand.InputRegionLink:// 获取当前模块之前的所有可获得的HImage参数CommonMethods.GetModuleList(ModuleParam,VarLinkViewModel.Ins.Modules,object);// 链接选择框EventMgr.Ins.GetEventOpenVarLinkViewEvent().Publish(${ModuleGuid},InputRegionLink);break;default:break;}});}return_LinkCommand;}}三 加载显示窗口[NonSerialized]VMHWindowControlmWindowH;/// summary/// 加载函数/// /summarypublicoverridevoidLoaded(){base.Loaded();varviewModuleViewasConnectionView;if(view!null){ClosedViewtrue;// 加载halcon显示控件if(view.mWindowHnull){view.mWindowHnewVMHWindowControl();view.winFormHost.Childview.mWindowH;}// 二次打开复原操作if(DispImage!nullDispImage.IsInitialized()){ShowHRoi();}}}四 显示结果/// summary/// 显示结果/// /summarypublicvoidShowRes(){if(ConnectedRegions!nullConnectedRegions.IsInitialized()){// 添加到mHRoi中ShowHRoi(newHRoi(ModuleParam.ModuleEncode,ModuleParam.ModuleName,ModuleParam.Remarks,HRoiType.检测结果,green,newHObject(ConnectedRegions),true));}varviewModuleViewasConnectionView;// 如果当前窗口已关闭则显示主界面窗口if(viewnull||view.IsClosed){mWindowHViewDic.GetView(DispImage.DispViewID);}// 否则显示对应view里面的窗口else{mWindowHview.mWindowH;}ListHRoiroiListmHRoi.Where(cc.ModuleNameModuleParam.ModuleName).ToList();foreach(HRoiroiinroiList){if(roi.roiTypeHRoiType.文字显示){HTextroiText(HText)roi;ShowTool.SetFont(mWindowH.hControl.HalconWindow,roiText.size,false,false);ShowTool.SetMsg(mWindowH.hControl.HalconWindow,roiText.text,image,roiText.row,roiText.col,roiText.drawColor,false);}else{mWindowH.WindowH.DispHobject(roi.hobject,roi.drawColor,roi.IsFillDisp);}}}添加输出publicoverridevoidAddOutputParams(){base.AddOutputParams();AddOutputParam(打散区域,HObject,ConnectedRegions);}

相关新闻

蒙特卡洛方法计算状态价值:从迷宫实战理解强化学习基础

蒙特卡洛方法计算状态价值:从迷宫实战理解强化学习基础

1. 项目概述:用蒙特卡洛方法亲手算出状态价值 你有没有试过站在迷宫入口,盯着那个小机器人发呆,心里琢磨:“它到底怎么知道自己该往哪走?它脑子里那张‘价值地图’,到底是怎么一笔一笔画出来的?…

2026/6/18 15:31:00阅读更多 →
AI能不能在十年内替代教师?一个研发总监的架构师视角拆解

AI能不能在十年内替代教师?一个研发总监的架构师视角拆解

文章目录前言一、先把问题翻译成系统改造问题二、AI 行业自己都在烧不动钱1. 资本开支正在失控2. 推理成本正在吃掉收入3. 商业模式还在靠融资续命三、Scaling Law 撞墙:模型变聪明的速度在变慢1. 数据撞墙:合成数据救不了模型2. 经济学天花板&#xff0…

2026/6/18 15:25:59阅读更多 →
Midscene.js:基于视觉与AI的下一代UI自动化测试实战指南

Midscene.js:基于视觉与AI的下一代UI自动化测试实战指南

1. 项目概述:当AI“看见”你的界面如果你和我一样,在UI自动化测试这个领域摸爬滚打了几年,那你一定对“选择器”这三个字又爱又恨。爱它,是因为它给了我们一个精准定位元素的“锚点”;恨它,是因为这个锚点太…

2026/6/18 15:25:59阅读更多 →
ATmega128勘误表实战:芯片数据手册的隐藏陷阱与避坑指南

ATmega128勘误表实战:芯片数据手册的隐藏陷阱与避坑指南

1. 从一份“过时”的数据手册说起最近在整理一个老项目的硬件资料,翻出了当年用的ATmega128芯片。这枚经典的8位AVR单片机,承载了不少嵌入式工程师的青春记忆。我手头这份数据手册,还是十几年前从官网下载的PDF,纸张边缘都泛黄了。…

2026/6/18 16:26:24阅读更多 →
大模型保质期管理:构建可预测的模型生命周期体系

大模型保质期管理:构建可预测的模型生命周期体系

1. 这不是技术迭代,是模型生命周期的范式迁移“最强大模型,保质期越来越短了”——这句话最近在AI工程圈里传得比benchmark分数还快。我上个月刚在生产环境全量切到某国产千亿级MoE架构模型,API响应延迟压到380ms以内,知识截止时间…

2026/6/18 16:26:24阅读更多 →
DeepSeek V4 缓存命中率深度解析:在 Claude Code / Codex CLI / Reasonix 中最大化缓存收益

DeepSeek V4 缓存命中率深度解析:在 Claude Code / Codex CLI / Reasonix 中最大化缓存收益

DeepSeek V4 缓存命中率深度解析:在 Claude Code / Codex CLI / Reasonix 中最大化缓存收益 前言 DeepSeek V4 自发布以来,凭借其强大的推理能力和极具竞争力的定价,迅速成为 AI 开发者的首选模型之一。而在其定价体系中,KV Cach…

2026/6/18 16:26:24阅读更多 →
数字经济时代,每个人都应该重新认识自己的数字资产

数字经济时代,每个人都应该重新认识自己的数字资产

作者:非凡大爹|版本:v1.0|日期:2026-06-16|DocID:DIGITAL-ASSET-2026-PERSONAL-CSDN-V1.0 原创声明:本文为作者非凡大爹原创内容,首发于 CSDN。网络发布版仅供个人学习、…

2026/6/18 16:26:24阅读更多 →
兵法与量子的七次握手:当东方智慧遇见现代物理学的底层语言

兵法与量子的七次握手:当东方智慧遇见现代物理学的底层语言

写在前面 本文是“七境体系思想丛书”系列的收官篇。前六篇分别拆解了七境体系的元认知起点(图国→料敌)、组织进阶路线(六韬犬韬四计)、竞争动力学(三十六计三连击)、应变认知重构(吴子应变三叠)、集群调度算法(司马法用众)、以及BURST六层架构。本篇做一个“从地面…

2026/6/18 16:26:24阅读更多 →
ZooKeeper Java API实战:从核心概念到生产级避坑指南

ZooKeeper Java API实战:从核心概念到生产级避坑指南

1. 项目概述最近在带新人做分布式系统相关的项目,发现很多同学对ZooKeeper的Java API使用存在不少困惑。大家普遍觉得,虽然知道ZooKeeper是分布式协调服务,但真要用Java代码去操作节点、监听变化时,总感觉API调用起来不那么顺手&a…

2026/6/18 16:21:22阅读更多 →
ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

1. ZigBee HA:智能家居的“通用语言”与开发基石如果你正在或计划踏入智能家居设备开发领域,尤其是基于ZigBee协议,那么“ZigBee Home Automation”这个名词你一定不陌生。它不仅仅是ZigBee联盟定义的一套应用层规范,更是确保不同…

2026/6/18 0:00:24阅读更多 →
Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/18 0:00:24阅读更多 →
JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

1. 项目概述在嵌入式开发领域,尤其是基于NXP JN517x这类无线微控制器的项目中,系统稳定性和与外设的可靠交互是两大核心挑战。前者关乎产品能否在无人值守的复杂环境中长期运行,后者则决定了设备能否准确感知世界并与其他芯片“对话”。JN517…

2026/6/18 0:00:24阅读更多 →