VisionPro零件尺寸测量与显示

零件测量是属于机器视觉当中的典型的应用。

项目要求:测量距离W,并将结果显示在界面上(图片是VisionPro自带的图片)。
项目要求
项目描述:我们给一些零件的图,然后在里面测量一些宽度还有一些圆的半径等信息。

项目流程:

高于9.0版本
低于90版本
开始
模板匹配 CogPMAlignTool
坐标 CogFixtureTool
卡尺 CogCaliperTool
VisionPro版本9.0
CogCreateGraphicLabelTool
没有左边控件,可以用脚本实现
结束

零件尺寸测量与显示

模板匹配

  1. 打开 VisionPro ® QuickBuild 项目
  2. 点击工具条上的保存按钮,保存一下项目。
  3. 默认情况下,里面有一个作业:CogJob1
  4. 双击 Image Source,指定要测量的图选择图像1
    选择图像2
  5. 点击运行可以切换图片资源。
  6. 选择模板匹配工具 CogPMAlignTool选择模板匹配工具
  7. 把图像资源传入到 CogPMAlignTool 工具的 InputImage 上把图像资源传给PMA
  8. 双击PMA工具,进入到模板的训练与匹配
  9. 如果没有图像需要先抓取训练图像,如果有训练图像则可以直接开始训练(第一次都需要先抓取一下)抓取训练图像
  10. 选择训练模式选择训练模式1
    选择训练模2
  11. 把左上角的选择框调整位置和大小,框选住我们的零部件框选零部件
  12. 设置中心原点设置中心原点
  13. 设置一下运行参数:允许正负180的旋转(零部件摆放位置不确定)。需要先把角度的三角符号改到后面(是选择标称值还是一个范围)。设置角度
  14. 设置一下运行参数:是否有缩放(同样的零部件,有大有小)设置缩放
  15. 设置一下运行参数:查找概数:指定要寻找的结果数(要查找多个的话,可以设置一下)查找概数
  16. 点击开始训练
  17. 查看训练结果,切换到图形页上(勾选上:显示精细):可以查看到训练的一些特征(根据这些特征去匹配)训练结果
  18. 查看运行结果:发现三张图像都匹配出来了(绿色框框出来的结果)训练结果2
  19. 模板匹配就做完了
  20. PS:可以把工具条上的“显示工具提示”打开,这样操作面板时就会有提示效果。提示

坐标系转化(重建修正坐标)

现在模板匹配做完了,我们来重建坐标系

  1. 添加 CogFixtureTool 工具添加Fixture工具
  2. 传入图像源传入图像源
    或者右键选择原始图像源
  3. 设置一下坐标转换(我们是把PMA的运行结果中的位置信息传递给我们的坐标转换,让他进行坐标转换,重建坐标)设置一下坐标转换
    或者设置一下坐标转换2
  4. 查看一下Fixture的结果,注意需要选中:CogFixtureTool.outputImageCogFixtureTool.outputImage
  5. 依次点击运行,查看结果:这是我们重建好的以零件的中心点来进行的一个新的坐标系fixture结果

卡尺工具

现在做完了匹配和定位之后,我们来利用卡尺进行测量

  1. 添加 CogCaliperTool 工具CogCaliperTool
  2. 传入图像源给卡尺传入图像源
  3. 双击进入卡尺工具,设置一下卡尺(尽量选择一张正的图,方便设置)。设置卡尺工具
  4. 首先确定卡尺要测量的边缘,拖拽卡尺选框,移动到要测量的位置拖拽卡尺选框
  5. 设置边缘对(单边或者搜索边缘对两种模式):左边是由暗到明,右边是由明到暗设置边缘对
  6. 点击下运行,保存下设置:保存卡尺设置
  7. 选中 LastRun.InputImage 查看结果查看结果1
    查看结果2
  8. 设置边缘对宽度。宽度如果设置的太小,找的可能不准确,我们可以稍微设置大一点,比如:200修改边缘对宽度
  9. 依次点击运行,可以看到所有的边缘对都找到了(宽度都测量出来了)查找所有的边缘对

标注宽度

现在做完测量之后,我们想把宽度标注出来,我们可以选择 CogCreateGraphicLabelTool 工具

  1. 添加 CogCreateGraphicLabelTool 工具CogCreateGraphicLabelTool
  2. 要标注到哪个图像上,首先要选择输入图像链接标注图像
  3. 想标注一个什么结果,想标注测量出来的宽度信息。首先在卡尺当中把宽度添加进来添加宽度1
    添加宽度2
  4. 把宽度输入进去输入宽度
  5. 打开图形标签,设置一下显示的是小数double设置一下显示的是小数double
  6. 把图形标签面板运行一下,保存一下。
  7. 运行项目查看结果。
  8. 标注设置里面有个实时位置信息(也可以拖拽图像上的Label来移动到合适的位置)标注位置信息1
    标注位置信息2
  9. 因为我们放在 Fixture 坐标系上的,所以宽度的标注是动态变化的。调整颜色和字号
  10. 调整double位数格式: Formatted: {D:F2}调整double位数格式1调整double位数格式2
  11. 在数字前面加上"宽度"两个汉字在数字前面加上宽度两个汉字

零件尺寸测量与显示(使用脚本)

没有脚本的已经演示完了,接下来我们演示一下如何利用脚本来实现测量显示效果(低于9.0的版本)。
高版本是有的

ToolBlock

  1. 脚本的实现有很多方式,我们这里使用 ToolBlock 的方式来实现:ToolBlock
  2. 打开 ToolBlock 工具,把其他控件工具都拖到 ToolBlock 里面去(把CogCreateGraphicLabelTool工具删除了),这时 ToolBlock 就调整好了。拖拽到ToolBlock中
  3. 图像传给 ToolBlock 图像传给ToolBlock
  4. 重新给PMA工具和Fixture工具指定输入图像重新指定输入图像

脚本编程

  1. 选择 C# 的高级脚本在这里插入图片描述
  2. 认识脚本区在这里插入图片描述
  3. 代码编写区域代码编写区域
  4. 代码实现智能提示
    代码实现
// 1. 在此处写代码,定义变量的地方
// 我们要放置的是一个图形标签,所以定义一个图形标签
CogGraphicLabel myLabel = new CogGraphicLabel();

// 2.在此处写代码(获取工具以及运行完工具获取运行的结果)
// SetXYText:设置标签的位置和显示的文字信息
myLabel.SetXYText(100,100,"HelloWorld");

// 3. 在此处写代码(把前面定义的一些图形之类的结果输出到图像上面)
// mToolBlock 工具面板
// AddGraphicToRunRecord:添加图像到输出的运行结果记录上
// 1. graphic:要添加的图形 
// 2. baseRecord:运行记录 固定的 lastRecord
// 3. recordName:放置的位置,图形信息(可以去复制,后面是数字1)
// 4. annotation:说明信息
mToolBlock.AddGraphicToRunRecord(myLabel,lastRecord,"CogFixtureTool1.OutputImage","说明信息");
  1. 运行一下运行一下
    运行一下
  2. 修改坐标
// 2.在此处写代码(获取工具以及运行完工具获取运行的结果)
// SetXYText:设置标签的位置和显示的文字信息
myLabel.SetXYText(0,0,"HelloWorld");

修改坐标

  1. 调整颜色和大小
// 2.在此处写代码(获取工具以及运行完工具获取运行的结果)
// SetXYText:设置标签的位置和显示的文字信息
myLabel.SetXYText(0,0,"HelloWorld");
// 调整颜色和大小
myLabel.Color = CogColorConstants.Red;
myLabel.Font = new Font("楷体",20);

在这里插入图片描述

  1. 再次调整位置
// 2.在此处写代码(获取工具以及运行完工具获取运行的结果)
// SetXYText:设置标签的位置和显示的文字信息
myLabel.SetXYText(10,-50,"HelloWorld");
// 调整颜色和大小
myLabel.Color = CogColorConstants.Red;
myLabel.Font = new Font("楷体",20);

在这里插入图片描述

  1. 获取卡尺测量宽度的结果
// 2.在此处写代码(获取工具以及运行完工具获取运行的结果)
    
// 获取卡尺工具以及卡尺的测量结果
// 定义一个卡尺(建议去CogToolBlock1中复制)
CogCaliperTool caliper = null;
caliper = mToolBlock.Tools["CogCaliperTool1"] as CogCaliperTool;
// 获取宽度结果
// caliper.Results[0].Width

// SetXYText:设置标签的位置和显示的文字信息
myLabel.SetXYText(10,-50,"宽度:" + caliper.Results[0].Width.ToString("F2"));
// 调整颜色和大小
myLabel.Color = CogColorConstants.Red;
myLabel.Font = new Font("楷体",20);

在这里插入图片描述

  1. 在外层运行,查看结果在这里插入图片描述
  2. 标注的内容是随着图形的变化而变化的,如果大家想把内容标注在图形的左上角,那么可以选择标注在原始图像上
// 3. 在此处写代码(把前面定义的一些图形之类的结果输出到图像上面)
// mToolBlock 工具面板
// AddGraphicToRunRecord:添加图像到输出的运行结果记录上
// 1. graphic:要添加的图形 
// 2. baseRecord:运行记录 固定的 lastRecord
// 3. recordName:放置的位置,图形信息(可以去复制,后面是数字1)
// 4. annotation:说明信息
// mToolBlock.AddGraphicToRunRecord(myLabel,lastRecord,"CogFixtureTool1.OutputImage","说明信息");
mToolBlock.AddGraphicToRunRecord(myLabel,lastRecord,"CogPMAlignTool1.InputImage","说明信息");

标注在原始图像上

码字不易,点个赞再走呗!

画外篇

你现在支持年轻人写博客吗?

  • 33
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值