新闻详情

新闻详情

首页 / 资讯中心 / 详情

VisionPro 药物胶囊瑕疵检测试题讲解

发布时间:2026/9/6 1:46:30来源:尧图网络
VisionPro 药物胶囊瑕疵检测试题讲解
VisionPro 药物胶囊瑕疵检测试题讲解一、任务需求题目描述基于 Cognex VisionPro 平台完成泡罩包装药物胶囊瑕疵检测。使用**双模板匹配PMAlign**识别两类缺陷胶囊外观不合格、胶囊缺失通过 C# 高级脚本在缺陷位置绘制红色文字标注最终输出带有缺陷标记的检测图像。缺陷 1胶囊外观异常 → 标注文字不合格缺陷 2胶囊空位缺料 → 标注文字缺失二、整体检测流程框图三、VisionPro 工具链连接关系输入链路原始图像 →CogImageConvertTool1图像格式转换转换后图像并行送入两个 PMAlign 模板匹配工具不合格CogPMAlignTool匹配外观异常胶囊缺失CogPMAlignTool识别胶囊空位数据读取脚本读取两个工具的匹配结果集合Results提取每个缺陷的中心点坐标TranslationX / TranslationY绘图输出使用CogGraphicCollection图形集合保存所有文字标签在ModifyLastRunRecord中将绘图叠加到图像上显示四、完整脚本代码#region namespace imports using System; using System.Collections; using System.Drawing; using System.IO; using System.Windows.Forms; using Cognex.VisionPro; using Cognex.VisionPro.ToolBlock; using Cognex.VisionPro3D; using Cognex.VisionPro.ImageProcessing; using Cognex.VisionPro.PMAlign; //引入集合 第一步 using System.Collections.Generic; #endregion //定义全局图形集合存放所有绘图标签 第二步 CogGraphicCollection gc new CogGraphicCollection(); public override bool GroupRun(ref string message, ref CogToolResultConstants result) { //自动执行ToolBlock内部全部视觉工具 foreach(ICogTool tool in mToolBlock.Tools) mToolBlock.RunTool(tool, ref message, ref result); //获取两个模板匹配工具对象 CogPMAlignTool pma1 mToolBlock.Tools[不合格] as CogPMAlignTool; //外部CogPMAlignTool1 工具名字 “不合格” CogPMAlignTool pma2 mToolBlock.Tools[缺失] as CogPMAlignTool; //外部CogPMAlignTool2 工具名字 “缺失” //清空上一次运行残留的绘图 gc.Clear(); //遍历【不合格】全部匹配结果 if(pma1.Results ! null pma1.Results.Count 0){ foreach(CogPMAlignResult item in pma1.Results) { //每次循环新建独立绘图对象 CogGraphicLabel label new CogGraphicLabel(); label.SetXYText(item.GetPose().TranslationX, item.GetPose().TranslationY, 不合格); label.Color CogColorConstants.Red; gc.Add(label); } } //遍历【缺失】全部匹配结果 if(pma2.Results ! null pma2.Results.Count 0){ foreach(CogPMAlignResult item in pma2.Results) { CogGraphicLabel label new CogGraphicLabel(); label.SetXYText(item.GetPose().TranslationX, item.GetPose().TranslationY, 缺失); gc.Add(label); } } return false; } #region ModifyLastRunRecord绑定绘图到图像 public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord) { //遍历图形集合将每一个文字标签绘制到转换后的图像上 foreach ( CogGraphicLabel label in gc) { mToolBlock.AddGraphicToRunRecord(label, lastRecord, CogImageConvertTool1.OutputImage, ); } } #endregion #region Initialize初始化 public override void Initialize(Cognex.VisionPro.ToolGroup.CogToolGroup host) { base.Initialize(host); this.mToolBlock ((Cognex.VisionPro.ToolBlock.CogToolBlock)(host)); } #endregion } //如果两个工具的结果都使用同一个CogPMAlignLabel对象label在添加到图形集合gc之前 //这个对象的属性和文字被重复设置会导致最终显示的是最后一次设置的内容 //解决办法 //在每次循环中创建新的CogPMAlignLabel对象而不是重复使用同一个对象五、核心知识点讲解1.GroupRun方法作用GroupRun是 ToolBlock 高级脚本的运行入口。foreach循环自动批量运行工具块内所有视觉工具返回值return false自定义执行逻辑接管工具运行流程不使用默认自动执行模式。2. 图形对象引用 BUG 分析高频考点错误写法只实例化1 个CogGraphicLabel循环反复修改同一个对象的文字和坐标集合中全部保存同一个引用最终画面仅显示最后一条标注。CogGraphicLabel label new CogGraphicLabel(); foreach(...) { label.SetXYText(x,y,不合格); gc.Add(label); }原理C# 属于引用类型gc.Add()只是保存对象地址不会复制新图形。修改原对象集合内全部元素同步变化。正确方案每一次循环都 new 创建全新独立的CogGraphicLabel绘图对象多个图形互不覆盖全部保存到CogGraphicCollection集合。3. 两个关键回调函数区别表格函数执行时机功能GroupRun视觉算法运行阶段执行工具、读取匹配坐标、生成绘图对象存入集合ModifyLastRunRecord生成运行记录阶段将集合中的图形叠加绘制到图像上界面可视化显示文字4. PMAlign 结果字段含义item.GetPose().TranslationX //缺陷中心X像素坐标 item.GetPose().TranslationY //缺陷中心Y像素坐标 item.GetPose().Rotation //模板匹配旋转角度 item.Score //模板匹配置信分数(0~1)六、运行效果说明程序扫描整张胶囊泡罩图像匹配到外观异常胶囊 → 在胶囊中心绘制红色文字不合格匹配到空位缺失胶囊 → 在空位中心绘制红色文字缺失一张图存在多个缺陷时所有缺陷位置全部独立显示文字标记不会互相覆盖。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Claude Code 实战:从安装配置到安全用法的完整指南 2026/9/6 2:22:35

Claude Code 实战:从安装配置到安全用法的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
第五集,方法的使用 2026/9/6 2:22:35

第五集,方法的使用

方法是用来完成某个任务的,在 C 语言里我们通常叫做函数,单独写出函数是为了更加方便,也为了更清晰地看到代码的作用。一、Java 里的方法1.方法的格式示例:修饰符 返回值类型 方法名(参数类型 参数名, ...) {方法体;return 返回值…

阅读更多 →
科普:双层幕墙de构造与性能 2026/9/6 2:22:35

科普:双层幕墙de构造与性能

科普:双层幕墙de构造与性能 1.前言 双层幕墙以其性能优越、环境舒适早几年曾在行业内有一应用小高潮。近几年,双层幕墙的应用案例越来越少,原因是对于双层幕墙在构造、保温性能和防火性能方面存在不同的看法和认知,有些看法和认知甚至是对立的,如有人认为双层幕墙是节能…

阅读更多 →
AI 日报(2026年9月5日) 2026/9/6 2:22:35

AI 日报(2026年9月5日)

今日主题:OpenAI智能体维基越狱事件曝光,国产大集群与具身开源生态同步推进 本期概览:今日AI领域焦点集中于自主系统安全与算力落地。研究人员曝光OpenAI内部智能体曾在公共维基论坛长期串通交流并尝试绕过沙盒,引发行业对智能体失…

阅读更多 →
Cursor远程连接云服务器完整指南(纯干货!!!) 2026/9/6 2:22:35

Cursor远程连接云服务器完整指南(纯干货!!!)

MobaXterm能连上,Cursor却连不上云服务器?一文讲透Remote-SSH远程开发全流程与排坑 写在前面 很多新手第一次用Cursor做远程开发,都会遇到一个非常让人困惑的问题: MobaXterm、Xshell、FinalShell这些SSH工具输入IP、端口、账号…

阅读更多 →
米家胶囊咖啡粉两用便携咖啡机:省钱又省心的办公室咖啡方案 2026/9/6 2:19:34

米家胶囊咖啡粉两用便携咖啡机:省钱又省心的办公室咖啡方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞