尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
颜色工具(Color)和复杂脚本基础
实例1将这个图片里面的保险丝颜色分别出来并标注。最终样式用到了四个工具:CogToolBlock:可以包括其他工具并在里面写代码CogImageConvertTool:将颜色变为灰白CogPMAlignTool:图形选取工具CogCompositeColorMatchTool:分别颜色其中CogCompositeColorMatchTool 输入中默认没有Region,需要自己手动调出1.CogCompositeColorMatchTool中的区域→区域形状一般和CogPMAlignTool中一样2.添加终端里面的Region中的CenterX/Y和Rotation(其中Rotation是旋转的值)3.代码其中大部分为CogToolBlock脚本自带的需要写入会在旁边写中文标注#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 Cognex.VisionPro.CompositeColorMatch; #endregion public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase { #region Private Member Variables private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock; #endregion //添加一个label方便显示文本 CogGraphicLabel label new CogGraphicLabel(); public override bool GroupRun(ref string message, ref CogToolResultConstants result) { #if DEBUG if (System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Break(); #endif // Run each tool using the RunTool function foreach(ICogTool tool in mToolBlock.Tools) mToolBlock.RunTool(tool, ref message, ref result); //定义五个颜色变量 int red 0; int yellow 0; int green 0; int blue 0; int orange 0; //调用CogPMAlignTool1方便使用 CogPMAlignTool pma mToolBlock.Tools[CogPMAlignTool1] as CogPMAlignTool; //调用CogCompositeColorMatchTool方便使用 CogCompositeColorMatchTool colorMatch mToolBlock.Tools[CogCompositeColorMatchTool1] as CogCompositeColorMatchTool; //创建CogRectangleAffine并将colorMatch.Region赋值给他 CogRectangleAffine region colorMatch.Region as CogRectangleAffine; //循环pma.Results里面的值并赋给item CogPMAlignResul类型 foreach(CogPMAlignResult item in pma.Results) { //将坐标赋值给region region.CenterX item.GetPose().TranslationX; region.CenterY item.GetPose().TranslationY; region.Rotation item.GetPose().Rotation; //重新运行一下colorMatch colorMatch.Run(); //拿出来colorMatch string colorName colorMatch.Result.ResultOfBestMatch.Color.Name; //判断颜色这边使用的是外面CogCompositeColorMatchTool1设置的Name if (colorName red) { red; } else if(colorName yellow) { yellow; } else if(colorName blue) { blue; } else if(colorName orange) { orange; } else if(colorName green) { green; } } //字符串拼接 String colorString String.Format(蓝色:{0},绿色{1},橙色:{2},红色:{3},黄色:{4}, blue, green, orange, red, yellow); //确定labelXY坐标和文本 label.SetXYText(240, 30, colorString); //label颜色 label.Color CogColorConstants.DarkRed; //确认字体 label.Font new Font(楷体, 20); return false; } #region When the Current Run Record is Created public override void ModifyCurrentRunRecord(Cognex.VisionPro.ICogRecord currentRecord) { } #endregion #region When the Last Run Record is Created /// summary /// Called when the last run record may have changed and is being reconstructed /// /summary /// param namelastRecord /// The new last run record is available to be initialized or customized./param public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord) { //label是绘制的对象看需求可以更改lastRecord指定记录类型一般都是用这个CogImageConvertTool1.InputImage锚定图像 记录树节点路径正常都是留空 mToolBlock.AddGraphicToRunRecord(label,lastRecord,CogImageConvertTool1.InputImage,); } #endregion #region When the Script is Initialized /// summary /// Perform any initialization required by your script here /// /summary /// param namehostThe host tool/param public override void Initialize(Cognex.VisionPro.ToolGroup.CogToolGroup host) { // DO NOT REMOVE - Call the base class implementation first - DO NOT REMOVE base.Initialize(host); // Store a local copy of the script host this.mToolBlock ((Cognex.VisionPro.ToolBlock.CogToolBlock)(host)); } #endregion }
RELATED

相关推荐

嵌入式面试内存管理全攻略:堆与栈、对齐、大小端及溢出检测

嵌入式面试内存管理全攻略:堆与栈、对齐、大小端及溢出检测

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

📅 2026/11/11 21:47:59
从零搭建APP开发工作台:跨平台开发环境配置与新手避坑指南

从零搭建APP开发工作台:跨平台开发环境配置与新手避坑指南

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

📅 2026/9/9 11:35:24
Anmut S2 PRO歌词音箱评测:蓝牙5.0高保真音质与悬浮歌词同步实测

Anmut S2 PRO歌词音箱评测:蓝牙5.0高保真音质与悬浮歌词同步实测

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

📅 2026/9/10 10:54:55
MORE NEWS

更多资讯

📰

老公考试考过了电工证怎么查电子证书?过期了别慌

老公考试考过了电工证怎么查电子证书?过期了别慌 证书过期了不知道怎么复审延期?别急,你老公考过的电工证如果已经过期,现在有明确的 电子证书 查询和复审流程。很多人以为电工证是“一考了之”,其实不然, 特种作业操作证 和 特种设备作业人员证…

📰

肇庆市电工证咨询:学历不高怕报不上名?上岗必备的电工证其实不难拿

肇庆市电工证咨询:学历不高怕报不上名?上岗必备的电工证其实不难拿 你是不是也担心自己学历不高,连电工证都报不了?别急,今天咱们就来聊聊 肇庆市电工证咨询 的那些事儿。别看电工证听起来门槛高,其实只要你准备到位, 上岗必备…

📰

杨凌低压电工证在哪考,官方报名入口怎么找?工地太忙根本没时间复习考试

杨凌低压电工证在哪考,官方报名入口怎么找?工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,这是很多一线电工的共同烦恼。你是不是也在为 杨凌低压电工证在哪考…

📰

怎么取得安监局电工证 低压电工证上岗必备怎么考

怎么取得安监局电工证 低压电工证上岗必备怎么考 你是不是学历不高,担心自己报不了名?别急,今天我就用自己在信阳浉河区办证的实际经验,告诉你 怎么取得安监局电工证 ,低压电工证是不是 上岗必备…

📰

钢城区电工证工人怎么选?学历不高也能考电子证书

钢城区电工证工人怎么选?学历不高也能考电子证书 你是不是也这样? 学历不高怕报不上名 ,担心自己能不能考下电工证?别急,我来告诉你,现在考电工证 根本不用太高的学历 ,关键是要找对机构,拿到 电子证书…

📰

学历不高怕报不上名?培训电工证有什么好处和全国通用优势你知道吗

学历不高怕报不上名?培训电工证有什么好处和全国通用优势你知道吗 你是不是也这样想,自己学历不高,连个正式的电工证都拿不到?别急,我来告诉你, 培训电工证有什么好处 ,而且这个证是 全国通用…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬