硬币金额统计

项目要求

项目要求:统计硬币金额,并将结果显示在界面上
硬币金额统计
有1角、5角、1元以及他们的正反面图像

项目流程:

开始
CogPMAlignTool 一元模板
CogPMAlignTool 五角模板
CogPMAlignTool 一角模板
CogResultsAnalysisTool Note:VisionPro CogResultsAnalysisTool 工具将表达式的值转换为int,Double等数据类型,输出给其他控件
CogCreateGraphicLabelTool
结束

硬币金额统计(工具实现)

模板训练

  1. 新建项目,保存为:01硬币金额统计(无脚本).vpp
  2. 导入图像:img文件夹导入硬币图像
  3. 导入PMA工具指定链接图象源,并修改名称为:PMA-yiyuanPMA-yiyuan
  4. 设置PMA-yiyuan
    • 找一个图片源比较合适的一元图像特征比较明显的.png
    • 抓取图像,设置为当前训练图抓取图像.png
    • 设置训练中心原点
    • 设置运行参数:角度-180~180
    • 设置查找概数:2设置pma参数
  5. 因为一元是有正反面,我们需要在这里做一下:图像掩模图像掩膜
    *选择工具:矩形工具矩形工具
    • 填充当前选项:注意红色部分表示是当前我们不感兴趣的细节(忽略掩膜像素颜色)填充当前选项.png
    • 选择工具:笔刷,调整笔刷大小,关注未掩膜像素颜色刷关注的掩膜像素.png
    • 应用掩膜应用.png
  6. 训练训练
  7. 图形:显示精细。发现寻找的就是内外的边线显示精细.png
  8. 查看结果1查看结果1.png查看结果2.png
  9. 把 PMA-yiyuan 赋值一份:
    • 设置图像输入源:链接自:Image Source.OutputImag
    • 重命名:PMA-wujiao
    • 寻找一张五角合适的图像PMA-wujiao.png
  10. 抓取训练图像(设置中心原点)抓取训练图像.png
  11. 设置掩膜
    • 打开掩膜工具,先清除上次的掩膜设置掩膜1.png
    • 制作掩膜:工具:矩形工具(框选)设置掩膜2.png
    • 擦出关注的掩膜的颜色:工具:笔刷,选择关注的颜色,调整笔刷大设置掩膜3.png
    • 点击应用 -> 确定
  12. 点击训练(图形->显示精细)五角训练结果.png
  13. 测试结果测试结果.png
  14. 赋值一份 PMA-wujiao(同理制作):PMA-yijiaoPMA-yijiao.png
  15. 训练结果(如果有对应的硬币没训练出来,重新做训练,重新做掩膜训练结果1.png
  16. 修改概数值(把所有的都运行一下,看看是否都找得到)修改概数值.png修改概数值1.png

添加结果分析工具

  1. 添加结果分析工具:CogResultsAnalysisTool
  2. 给上面的一元,五角,一角添加统计结果数:右键 -> 添加终端 (同理:给其他两个也添加一下)添加统计结果数.png
  3. 设置分析工具:添加3个输入添加3个输入.png
  4. 修改参数名称修改参数名称.png
  5. 把上面的匹配结果拖拽给分析工具匹配结果拖拽给分析工具.png
  6. 添加统计表达式
    • 添加表达式添加统计表达式1.png
    • 添加表达式逻辑添加统计表达式2.png
    • 修改表达式名称添加统计表达式3.png
  7. 需要把结果累加一下,继续添加表达式
    • 添加两个表达式,并修改名称为:money12和money123,分别表示:1圆+五角+1角累加.png
  8. 把 money123 添加为输出money123输出.png
  9. 点击运行,查看 money123 结果运行结果2.png

把统计结果显示出来

  1. 添加显示控件:CogCreateGraphicLabelTool
  2. 设置图像源:链接自(Source Image.OutputImage)
  3. 把 统计分析的结果 money123 拖拽到 Label 的 InputDouble 上(发现拖拽不了
  4. 拖拽不了的解决办法:
    • 选中 CogResultsAnalysisTool 上右键 -> 选择 添加终端…… ->
    • 浏览:所有未过滤所有未过滤.png
    • 找到 Result -> EvaluateExpressions -> Item[money123] -> Value -> Double 添加输出添加money123的double变量.png
  5. 把上面的结果拖拽到 Label 控件的 Double 上、拖拽结果.png
  6. 双击 CogCreateGraphicLabelTool,把内容 -> 选择器 -> InputDouble 类型修改为double.png
  7. 修改 Label 的位置修改Label的位置.png
  8. 修改字体大小和字体颜色:红色,三号
  9. 修改文本格式:总金额:{D:F1}修改格式和字体.png自己测试各种对齐方式.png效果图4.png效果5.png

自行拓展自行拓展.png

硬币金额统计(脚本实现)

前面的话,我们已经实现了没有脚本的统计与显示,加下来演示一下有脚本的情况。

  1. 把上节课的 CogCreateGraphicLabelTool 删除
  2. 添加一个 CogToolBlock 控件
  3. 把我们的工具都拖进去CogToolBlock控件.png
    4. 把图像拖给 CogToolBlock,重新设置一下输入源重新设置一下输入源.png
    5. 打开 CogToolBlock 的高级 C# 脚本高级脚本.png
    6. 脚本实现:脚本1.png
    // 1.添加一个 Label
    CogGraphicLabel myLabel = new CogGraphicLabel();
    // ……
    // 2. 设置Label坐标
    myLabel.SetXYText(0, 0, "Hello World");
    // ……
    // 3.添加 Label
    mToolBlock.AddGraphicToRunRecord(myLabel,lastRecord,"PMA-yiyuan.InputImage","");
    
    脚本1结果.png
    7. 脚本实现:脚本2.png
    // 1.添加一个 Label
    CogGraphicLabel myLabel = new CogGraphicLabel();
    // ……
    // 获取统计结果工具
    CogResultsAnalysisTool c = mToolBlock.Tools["CogResultsAnalysisTool1"] as CogResultsAnalysisTool;
    // 2. 设置Label坐标
    myLabel.SetXYText(100, 100, "总金额:" + c.Result.EvaluatedExpressions["money123"].Value.ToString());
    // 自行设计字体的大小和颜色
    // ……
    // 3.添加 Label
    mToolBlock.AddGraphicToRunRecord(myLabel,lastRecord,"PMA-yiyuan.InputImage","");
    
    脚本2结果.png
    8. 把每一种硬币的个数都展示出来怎么做,两种做法:
    * 利用一个 Label 拼接
    * 创建多个 Label 分别展示(自行完成)
    9. 继续修改代码:脚本3.png
    // 1.添加一个 Label
    CogGraphicLabel myLabel = new CogGraphicLabel();
    // ……
     // 获取统计结果工具
    CogResultsAnalysisTool c = mToolBlock.Tools["CogResultsAnalysisTool1"] as CogResultsAnalysisTool;
    // 2. 设置Label坐标
    myLabel.SetXYText(350, 100, "1元个数:" + c.Result.EvaluatedExpressions["yiyuan"].Value.ToString() + 
    ",5角个数:" + c.Result.EvaluatedExpressions["wujiao"].Value.ToString() + 
    ",1角个数:" + c.Result.EvaluatedExpressions["yijiao"].Value.ToString() + 
    ",总金额:" + c.Result.EvaluatedExpressions["money123"].Value.ToString());
    myLabel.Color = CogColorConstants.Red;
    // ……
    // 3.添加 Label
    mToolBlock.AddGraphicToRunRecord(myLabel,lastRecord,"PMA-yiyuan.InputImage","");
    
    脚本3结果.png
  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值