当前位置: 首页 > news >正文

通用视觉工具模块-打散模块-3-后端实现

通用视觉工具模块-打散模块-3-后端实现

一 执行和确认命令

/// <summary>/// 执行命令/// </summary>[NonSerialized]privateCommandBase_ExecuteCommand;publicCommandBaseExecuteCommand{get{if(_ExecuteCommand==null){_ExecuteCommand=newCommandBase((obj)=>{ExeModule();});}return_ExecuteCommand;}}/// <summary>/// 确认/// </summary>[NonSerialized]privateCommandBase_ConfirmCommand;publicCommandBaseConfirmCommand{get{if(_ConfirmCommand==null){_ConfirmCommand=newCommandBase((obj)=>{varview=this.ModuleViewasThresholdView;// 关闭界面if(view!=null){view.Close();}});}return_ConfirmCommand;}}

二 链接命令

/// <summary>/// 参数变化回调函数/// </summary>/// <param name="obj"></param>privatevoidOnVarChanged(VarChangedEventParamModelobj){switch(obj.SendName.Split(',')[1]){case"InputRegionLink":InputRegionLinkText=obj.LinkName;break;default:break;}}[NonSerialized]privateCommandBase_LinkCommand;publicCommandBaseLinkCommand{get{if(_LinkCommand==null){//以GUID+类名作为筛选器EventMgr.Ins.GetEvent<VarChangedEvent>().Subscribe(OnVarChanged,o=>o.SendName.StartsWith($"{ModuleGuid}"));_LinkCommand=newCommandBase((obj)=>{eLinkCommandlinkCommand=(eLinkCommand)obj;switch(linkCommand){caseeLinkCommand.InputRegionLink:// 获取当前模块之前的所有可获得的HImage参数CommonMethods.GetModuleList(ModuleParam,VarLinkViewModel.Ins.Modules,"object");// 链接选择框EventMgr.Ins.GetEvent<OpenVarLinkViewEvent>().Publish($"{ModuleGuid},InputRegionLink");break;default:break;}});}return_LinkCommand;}}

三 加载显示窗口

[NonSerialized]VMHWindowControlmWindowH;
/// <summary>/// 加载函数/// </summary>publicoverridevoidLoaded(){base.Loaded();varview=ModuleViewasConnectionView;if(view!=null){ClosedView=true;// 加载halcon显示控件if(view.mWindowH==null){view.mWindowH=newVMHWindowControl();view.winFormHost.Child=view.mWindowH;}// 二次打开复原操作if(DispImage!=null&&DispImage.IsInitialized()){ShowHRoi();}}}

四 显示结果

/// <summary>/// 显示结果/// </summary>publicvoidShowRes(){if(ConnectedRegions!=null&&ConnectedRegions.IsInitialized()){// 添加到mHRoi中ShowHRoi(newHRoi(ModuleParam.ModuleEncode,ModuleParam.ModuleName,ModuleParam.Remarks,HRoiType.检测结果,"green",newHObject(ConnectedRegions),true));}varview=ModuleViewasConnectionView;// 如果当前窗口已关闭,则显示主界面窗口if(view==null||view.IsClosed){mWindowH=ViewDic.GetView(DispImage.DispViewID);}// 否则显示对应view里面的窗口else{mWindowH=view.mWindowH;}List<HRoi>roiList=mHRoi.Where(c=>c.ModuleName==ModuleParam.ModuleName).ToList();foreach(HRoiroiinroiList){if(roi.roiType==HRoiType.文字显示){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);}
http://www.gsyq.cn/news/1548508.html

相关文章:

  • 5分钟快速上手洛雪音乐音源:免费解锁全网无损音乐的终极指南
  • LSTM假新闻识别器:轻量、可解释、可落地的实战方案
  • 嵌入式实时系统开发:软件定时器、硬件抽象层与L1防御机制详解
  • 杭州黄金回收去哪里靠谱?选店避坑全指南 - 奢侈品回收评测
  • 地理空间机器学习实战:GEE平台上的遥感影像分类原理与落地
  • 企业3A认证有什么用?办理流程是什么?【超全盘点】 - 叮咚办真方便
  • 面试官不会说的Java面试潜规则:避开这10个坑就能加分!
  • 石家庄莫奈回收哪家正规?小白回收完整实操指南 - 奢侈品回收测评
  • 2026年河南规模化养兔场饲料选型攻略:如何通过科学配方降低料肉比 - 年度推荐企业名录
  • AI辅助JMeter脚本生成:从自然语言到性能测试自动化
  • 线上报价越夸张越坑?收的顶实地测评济南5家黄金回收门店,真相一目了然 - 奢侈品回收评测
  • 手把手利用Nuclei批量检测Confluence授权绕过漏洞CVE-2023-22527
  • Gemma LMStudio Pi本地模型运行指南
  • Token空投策略全解析:从原理到实战,开发者必读指南
  • Cursor Pro激活工具实战指南:开源项目cursor-free-vip实现多账户管理技术解析
  • 打工人如何稳定使用AI情绪支持工具
  • 浏览器视频下载终极指南:猫抓扩展让网页视频一键变本地文件
  • AI赋能Playwright自动化测试:智能解决元素定位与异步等待难题
  • gpt-4o实战指南:重构、状态机与接口契约的工程化落地
  • 8.1 | 虾谷360注册与开店:十大板块让你的Agent走向市场
  • MySQL Buffer Pool内核调优:页替换LRU链、冷热页分离、预读策略,实测大查询导致缓存雪崩根治
  • 2026年6月最新伯爵中国官方售后电话地址客服热线服务网点 - 亨得利官方服务中心
  • 30天无限续杯:JetBrains IDE试用期重置终极方案
  • PyNaCl:Python 的密码学工具库
  • PTEN伴随诊断抗体如何指导肿瘤精准治疗?
  • 聚焦「兰州家政保洁」——2026年兰州家政保洁与综合服务TOP5 - 品研笔录
  • 影刀RPA HR人力资源专属教程:招聘筛选简历到入职全流程自动化实战——HR的RPA入门到实战
  • 瓦楞纸箱常见问题解答(2026专家版) - 速递信息
  • 5分钟快速上手:Waifu2x-Extension-GUI图像视频超分辨率终极指南
  • 上海音响改装难题终结者:上海冉声汽车音响的5大专业解决方案,原车音响升级/问界原厂音响升级,音响改装官方门店找哪家 - 音响改装门店分享