背景

不同的模板匹配方法,其操作步骤也不一样,其生成模板的方式也有不同的地方,在之前的课程中我们讲述了基于形状的模板匹配,本期课程我们去了解一下基于灰度值的模板匹配。

基于灰度值的模板匹配适用于图像内灰度变化比较稳定,噪声比较少,且灰度差异比较明显的检测目标。 这是一种不太推荐的匹配方法,因为该方法复杂度高,一次只能检测一个目标,耗时,且对光照和尺寸变化十分敏感。

如果在视觉检测项目过程中,遇到采集到的图像特征一致性差的情况下。我们可通过灰度匹配指令将待检测目标的灰度值特征框选出来。首先去创建一个灰度模板,然后在图像中去搜索与灰度模板的相似度最接近的区域,并找出相似度达到最大,即匹配到该模板。

在上期课程中,我们讲述了如何使用VPLC系列机器视觉运动控制一体机进行进行ROI创建的课程。本期课程正运动小助手给大家分享一下VPLC系列机器视觉运动控制一体机对图像进行灰度匹配的课程。

腾讯视频

教学视频

01VPLC控制器

(一)VPLC516E构架图

(二)课前准备
1.电脑一台,安装ZDevelop3.10以上版本软件
2.VPLC516E一台
3.24V直流电源一个
4.网线一根
5.WinSCP软件
6.电线若干

02课程主要使用的指令

1.ZV_FASTTEMPL – 快速简单匹配
ZV_FASTTEMPL(img,modImg,tab_rst[,method = 0])
描述:

获取最佳匹配位置的整型值 x、y 坐标。

参数:

img:ZVOBJECT 类型,待匹配图像

modImg:ZVOBJECT 类型,模板图像

tab_rst:TABLE 索引,匹配结果,输出参数,依次为 x、y 坐标

Method:匹配算法

2.ZV_BESTTEMPL – 灰度模板匹配
ZV_BESTTEMPL(img,modImg,min_score,tab_rst[,is_sub_pix=0,polar=0])

描述:

获取最佳匹配位置,支持亚像素精度。
参数:

img:ZVOBJECT 类型,待匹配图像,图片为单通道图片

modImg:ZVOBJECT 类型,模板图像

min_score:最低匹配分值

tab_rst:TABLE 索引,匹配结果,输出参数,依次为 score、x、y

is_sub_pix:是否子像素精度插值,0-否,1-是

polar:匹配极性模式

3.ZV_MULTITEMPL – 灰度模板匹配
ZV_MULTITEMPL(img,modImg,mat_rst,min_score[,nums=0,min_dist=0,

is_sub_pix=0,polar=0])
描述:
多目标灰度匹配,在搜索图像中查找与模板匹配的目标,返回分值最高的前nums个匹配中分值大于min_score的结果。
参数 :

img:ZVOBJECT 类型,待匹配图像

modImg:ZVOBJECT 类型,匹配模板图像

mat_rst:ZVOBJECT 类型,匹配结果,矩阵类型,N 行 3 列,每行一

个结果,结果顺序依次为分数 score、x 坐标和 y 坐标

min_score:最低匹配分值

nums:最大匹配数量,取分值最高的前 nums 个结果,为 0 则取全部

结果

min_dist:两个匹配结果的最小距离,大于等于 0,等于 0 则自动选

择距离

is_sub_pix:是否使用子像素精度插值

polar:匹配极性

→本期课程就使用第三条灰度匹配指令做多目标灰度匹配编写示例代码。

03软件实现

1.打开ZDevelop软件:新建名称为“基于灰度匹配的视觉定位.zpj”项目→新建“HMI”文件→新建“主函数.bas”文件 (用于编写界面响应函数、并开启HMI自动运行任务) →新建“相机采集.bas”文件 (用于实现相机采集功能) →新建“绘图刷新.bas”文件 (用于更新绘制ROI数据) →新建“初始化.bas”文件 (用于初始化测量参数) →文件添加到项目。

2.设计HMI主界面和创建模板,并关联它的控件变量。

主界面

创建模板界面

3.编写实现对图像进行灰度匹配的执行函数。

'灰度匹配GLOBAL SUB btn_match()if ga_cutModel=0 THEN?"先截取模板图像"RETURNendifticks=0  GLOBAL match_rst(500)  ZV_GAUSSBLUR(grabImg, sImg, 3)ZV_MULTITEMPL(sImg,subImg,ga_match_rst,ga_match_param(0), ga_match_param(3),ga_match_param(4),ga_match_param(1),ga_match_param(2))ZV_MATINFO(ga_match_rst, 0)     '获取矩阵结果信息。并存放到起始地址为0的table数组ZV_GRAYTORGB(sImg, colorImg) '灰度图转换到RGB图if TABLE(0) > 0 then         '如果匹配到目标local rowrfor rowr = 0 to TABLE(0)-1'获取match_rst矩阵中第rowr行的数据存放到起始地址为3的table数组中,table最大长度5ZV_MATGETROW(ga_match_rst, rowr, 3, 3)  match_rst(rowr*3+0) = TABLE(3)          '将匹配结果赋值给定义的结果变量,显示到界面match_rst(rowr*3+1) = TABLE(4)match_rst(rowr*3+2) = TABLE(5)match_rst(rowr*3+3) = TABLE(6)match_rst(rowr*3+4) = TABLE(7)        '在匹配目标上绘制对应的编号,以便和输出结果信息相对应ZV_MARKER(colorImg,TABLE(4),TABLE(5),0,60,ZV_COLOR(255,0,0))'绘制十字  nextendif  ZV_LATCH(colorImg, 0)     '显示匹配结果图像ga_match_time = abs(TICKS) '计算匹配消耗时间ENDSUB

4.效果演示。

腾讯视频

本次,正运动技术【机器 视觉运动控制 一体机小课堂】三分钟进行灰度匹配,就分享到这里。

更多精彩内容请关注“ 正运动小助手 ”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师: 400-089-8936 。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

【机器视觉运动控制一体机小课堂】三分钟进行灰度匹配相关推荐

  1. 【机器视觉运动控制一体机小课堂】三分钟进行轮廓提取

    背景 轮廓提取是基于边缘轮廓的算法,可用于需要提取工件轮廓信息后进行加工处理的检测加工项目,可广泛应用于点胶.激光切割.工件打磨等需要提取工件轮廓的领域. 轮廓是一种能存储一系列点集的数据结构,可分为 ...

  2. 机器视觉运动控制一体机应用例程(三) 基于BLOB分析的多圆定位

    我们在<VPLC系列机器视觉运动控制一体机快速入门(三)>的推文中,讲述了基于形状匹配的视觉定位功能,而BLOB斑点分析也可以实现定位功能. 本期课程我们将在BLOB斑点分析定位的基础上进 ...

  3. VPLC系列机器视觉运动控制一体机快速入门(六)

    于形状匹配的视觉定位.BLOB有无检测以及测量尺寸. 本期课程,正运动技术和大家一起分享和标定有关的详细知识内容. 视频教程:<VPLC系列机器视觉运动控制一体机快速入门(六)> 机器视觉 ...

  4. 【视觉运控一体机小课堂】三分钟搭建机器视觉开发环境

    回顾之前课程正运动技术与大家分享了,VPLC系列机器视觉运动控制一体机快速入门和应用案例等系列课程. 今天,我们来讲解一下正运动技术VPLC系列控制器ZDevelop编程软件如何来建立ZVision软 ...

  5. 机器视觉运动控制一体机应用例程|锂电池组装线上的读码应用

    应用背景 读码识别技术作为工业物联网信息收集的关键途径,它在生产型企业中得到了广泛的应用. 锂电池在新能源汽车.消费电子和储能领域都有着不可或缺的地位. 它也与人的生命安全保证密切相关. 因此,锂电池 ...

  6. 机器视觉运动控制一体机应用例程(十)工件圆度检测

    现有的测量工件圆度的方法一般是采用圆度测量仪,其是利用回转轴法测量圆度的长度测量工具.圆度仪分为传感器回转式和工作台回转式两种检测方法. 检测圆度时,样品需要与精密轴系同心安装,精密轴系带着电感式长度 ...

  7. 机器视觉运动控制一体机应用例程|柔性振动盘上料解决方案

    一.什么是柔性振动盘? 柔性振动盘作为高度灵活的.可自定零件的自动化柔性上料机构,解决了由于零件的大小.形状不一导致金属/塑料的零部件产品难以上料的难题.适用于更新换代快,频繁切换物料的工业应用场景, ...

  8. 机器视觉运动控制一体机应用例程|电子烟二维码识别

    方案背景 随着社会生活水平的不断提高,电子烟已普遍成为一种大众消费电子产品. 传统电子烟的烟弹在完成烟油加注完后,仍需依赖于人工使用扫码枪或者半自动设备,在生产的环节中进行至关重要的二维码识别. 这种 ...

  9. VPLC系列机器视觉运动控制一体机快速入门(十)

    此前,我们依次讲解了软硬件介绍及计数实例.相机的基本使用.基于形状匹配的视觉定位.BLOB有无检测.测量尺寸.机器视觉方案中使用到的标定功能.ZDevelop软件实现识别条形码和二维码,测量点/直线/ ...

最新文章

  1. 点击新建 下拉框选择
  2. 乔布斯在斯坦福大学毕业典礼上的演讲
  3. 深度学习初学者必备资料整理
  4. C++golden section search黄金分割搜索的实现算法(附完整源码)
  5. C# 读写excel 用于导入数据库 批量导入导出excel
  6. python修改指定行,python读取文件的指定行并修改
  7. python支付宝自动转账_python实现支付宝转账接口
  8. Java并发编程-ReentrantLock可重入锁
  9. form表单那点事儿(下) 进阶篇
  10. thymeleaf 判断对象是否为空_JVM面试问题系列:判断对象是否已死和四种垃圾回收算法总结...
  11. 制作属于自己的个人博客-超详细教程
  12. ST语言和C语言的区别 STC
  13. 奥克兰大学 计算机硕士 GPA,申请奥克兰大学需要GPA成绩吗
  14. 基于at89c51单片机的led数字倒计时器设计c语言,基于AT89C51单片机的LED数字倒计时器设计.docx...
  15. 史上最详细Proof处理教程--Elsevier平台(一)~
  16. 基于STM32单片机的远程智能浇花花盆GSM短信浇水补光方案原理图程序设计
  17. 如何解决vmware虚拟机下ubuntu无法连接WiFi问题
  18. 三分钟,如何说好自我介绍?
  19. [MyBatis] 通过代码配置+XML文件构建SqlSessionFactory
  20. 【折半搜索-经典题目】中山纪念中学暑期游Day13——【GDOI2017模拟8.15】Buy

热门文章

  1. 人力资源管理的核心:读《经理人参阅:人力资源管理》有感
  2. (二改)右键发送多个文件到kindle
  3. vue3.0 study(二) 安装 element-plus踩坑汇总
  4. android检测代理,防止别人抓包
  5. django之template模板层-60
  6. html5彩盒插件画廊,纯JS开发baguetteBox.js响应式画廊插件
  7. Java中Collections.sort()排序详解
  8. 华为新机发布:苹果三星已退出群聊
  9. iPhone通讯录批量整理方法
  10. 解决nmcli unmanaged问题