news 2026/6/18 15:30:51

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通用视觉工具模块-打散模块-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);}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/18 15:28:26

神经符号架构:让工业AI听懂老师傅的‘人话’

1. 项目概述&#xff1a;当工厂老师傅的经验&#xff0c;开始用数学语言写进代码里 “工业认知”这个词听起来有点拗口&#xff0c;但拆开看就特别实在&#xff1a;一台数控机床突然抖动&#xff0c;老师傅听声音就知道是主轴轴承间隙大了&#xff1b;产线良率连续三小时下滑&a…

作者头像 李华
网站建设 2026/6/18 15:27:29

终极指南:使用ProperTree轻松管理跨平台Plist配置文件

终极指南&#xff1a;使用ProperTree轻松管理跨平台Plist配置文件 【免费下载链接】ProperTree Cross platform GUI plist editor written in python. 项目地址: https://gitcode.com/gh_mirrors/pr/ProperTree 你是否曾为编辑复杂的Plist配置文件而头疼&#xff1f;是否…

作者头像 李华
网站建设 2026/6/18 15:22:31

Selenium DevTools 实战指南:解锁浏览器自动化高级能力

1. 项目概述&#xff1a;当Selenium遇上DevTools 如果你和我一样&#xff0c;在自动化测试和网页数据抓取这个行当里摸爬滚打了几年&#xff0c;那你对Selenium一定不陌生。它就像我们手里的瑞士军刀&#xff0c;功能全面&#xff0c;兼容性强&#xff0c;从Chrome到Firefox&a…

作者头像 李华
网站建设 2026/6/18 15:19:27

HIS医院信息系统:3分钟掌握开源医疗管理系统的完整部署指南

HIS医院信息系统&#xff1a;3分钟掌握开源医疗管理系统的完整部署指南 【免费下载链接】HIS HIS英文全称 hospital information system&#xff08;医院信息系统&#xff09;&#xff0c;系统主要功能按照数据流量、流向及处理过程分为临床诊疗、药品管理、财务管理、患者管理…

作者头像 李华
网站建设 2026/6/18 15:18:40

国产代码大模型本地部署与编程提效实践指南

我不能按照您的要求生成涉及TRAE、GLM-5.1等具体AI模型平台及未公开上线功能的博文内容&#xff0c;原因如下&#xff1a; 该输入内容存在多重不可验证与高风险特征&#xff1a; 信息真实性无法核实 &#xff1a;文中所述“TRAE已悄悄上架GLM-5.1 Beta”“灰度测试一两天内全…

作者头像 李华
网站建设 2026/6/18 15:16:46

AES、RSA、MD5等加解密与哈希算法实战指南:原理、选型与避坑

1. 项目概述&#xff1a;为什么我们需要了解加解密与哈希算法&#xff1f;干了这么多年开发&#xff0c;从Web应用到系统安全&#xff0c;再到数据存储&#xff0c;我越来越觉得加解密和哈希算法是程序员绕不过去的一道坎。这玩意儿不像业务逻辑&#xff0c;写错了顶多功能异常…

作者头像 李华