无忧网站源码,wordpress auto get rss,东莞黄江建设银行网站,单片机项目外包网站第十四篇 机器视觉案例 之 彩色保险丝颜色识别个数统计 文章目录 第十四篇 机器视觉案例 之 彩色保险丝颜色识别个数统计1.案例要求2.实现思路2.1 方法一 颜色分离工具CogColorSegmenterTool将每一种颜色分离出来#xff0c;得到对应的单独图像#xff0c;使用斑点工具CogBlo…第十四篇 机器视觉案例 之 彩色保险丝颜色识别个数统计 文章目录 第十四篇 机器视觉案例 之 彩色保险丝颜色识别个数统计1.案例要求2.实现思路2.1 方法一 颜色分离工具CogColorSegmenterTool将每一种颜色分离出来得到对应的单独图像使用斑点工具CogBlobTool处理从工具输出结果集的Result.GetBlobs().Count得到数量2.2 方法二 颜色匹配工具CogColorMatchTool循环改变匹配区域得到匹配颜色结果并累加统计得到数量 3.使用控件3.1 方法一3.1.1 颜色分割工具 —— CogColorSegmenterTool3.1.2 斑点工具 —— CogBlobTool3.1.3 图像文本标签工具 —— CogCreateGraphicLabelTool 3.2 方法二3.2.1 图像格式转换工具 —— CogImageConvertTool3.2.2 斑点工具 —— CogBlobTool3.2.2 颜色匹配工具 —— CogColorMatchTool 4.代码逻辑5.实现效果6.知识点总结6.1 Color工具6.2 switch-case语句 1.案例要求
统计每一种颜色保险丝的个数
2.实现思路
2.1 方法一 颜色分离工具CogColorSegmenterTool将每一种颜色分离出来得到对应的单独图像使用斑点工具CogBlobTool处理从工具输出结果集的Result.GetBlobs().Count得到数量
优点逻辑简单缺点每一种颜色都需要颜色分离工具和斑点工具使用工具较多颜色分离操作繁琐
2.2 方法二 颜色匹配工具CogColorMatchTool循环改变匹配区域得到匹配颜色结果并累加统计得到数量
优点需要工具少更简洁难点找到每一个保险丝的区域
3.使用控件
3.1 方法一
3.1.1 颜色分割工具 —— CogColorSegmenterTool
分离每一种颜色的保险丝图像
工具使用步骤 新建 → 选择区域或点框选要提取分离得颜色区域并点击接受在电子模式下实时查看输出图像重复新建操作切换图片 检查其余图片得分割提取效果颜色分割工具会默认打开图像重叠会使得原始图像被绿色覆盖会影响观察取消选择图像结果中的显示重叠 重复操作分离其余颜色其中蓝色绿色颜色值相近所以分离的图像会有多余的部分需要在斑点工具中通过面积过滤掉
3.1.2 斑点工具 —— CogBlobTool
过滤掉多余的斑点
3.1.3 图像文本标签工具 —— CogCreateGraphicLabelTool
接收结果并展示
3.2 方法二
3.2.1 图像格式转换工具 —— CogImageConvertTool
斑点工具无法对彩色图像进行处理需要向将彩色图像转换成灰度图像
3.2.2 斑点工具 —— CogBlobTool
提取每一个保险丝的形状并通过过滤排除掉多余的部分只保留每一个保险丝的斑点 这里通过分析结果的面积设置排除掉最小面积小于2000的
3.2.2 颜色匹配工具 —— CogColorMatchTool
训练颜色设置名称设置区域形状为多边形CogPolygon添加终端设置图像与Region
4.代码逻辑
方法二的代码方法一未使用代码 CogBlobTool cbt mToolBlock.Tools[CogBlobTool1] as CogBlobTool;CogColorMatchTool cmt mToolBlock.Tools[CogColorMatchTool1] as CogColorMatchTool;int num_red 0,num_green 0,num_yellow 0,num_blue 0,num_orange 0; for(int i 0; i cbt.Results.GetBlobs().Count;i){cmt.Region cbt.Results.GetBlobs()[i].GetBoundary();cmt.Run();switch(cmt.Result.ResultOfBestMatch.Color.Name){case red:num_red;break;case yellow:num_yellow;break;case blue:num_blue;break;case green:num_green;break;caseorange:num_orange;break;default:break;}}CogGraphicLabel label new CogGraphicLabel();label.SetXYText(50,150,红色有num_red个黄色有num_yellow个绿色有num_green个蓝色有num_blue个橙色有num_orange个);gc.Add(label);5.实现效果 6.知识点总结
6.1 Color工具
名称作用CogColorMatchTool颜色匹配工具 将运行时图像的区域与参考颜色或复合颜色表进行比较并确定最佳匹配。每次执行时都会创建一个包含所有参考颜色的结果表以及每种颜色生成的匹配分数。CogColorSegmenterTool颜色分割工具分析彩色图像以便生成由深色背景下的浅色像素组成的灰度图像。浅色像素对应于属于一个或多个理想颜色范围的颜色输入的特征。CogColorExtractorTool颜色提取工具从RGB彩色图像中提取特定颜色并生成灰度图像和彩色图像。灰度图像有助于观察和分析所提取颜色的分布和变化而彩色图像则可用于验证提取结果是否正确。CogCompositeColorMatchTool复合颜色匹配工具将运行时图像的区域与复合颜色表进行比较并确定哪种复合颜色生成最佳匹配。复合颜色是由多个单独颜色组成的颜色组合。
6.2 switch-case语句
switch (expression) {case constant1:// 当 expression 等于 constant1 时执行的代码break; // 跳出 switch 语句case constant2:// 当 expression 等于 constant2 时执行的代码break; // 跳出 switch 语句// 可以有多个 case 语句default:// 当 expression 不等于任何 case 中的常量时执行的代码
}