正运动技术
正运动技术

协助伙伴成功,是我们的价值所在

The value of Zmotion is to bring customers more success!

首页 / 支持与服务 / 技术分享

Technical support

技术分享

【机器视觉运动控制一体机小课堂】三分钟实现开运算和闭运算


1.jpg

背景

膨胀与腐蚀是形态学的基础,在实际的视觉检测项目过程中,常常需要组合运用膨胀与腐蚀对图像进行预处理。而开运算和闭运算用途就是组合使用这两种方法。同时 运算和闭运算 不仅能在保留图像目标主体的同时,还能处理图像中出现的各种杂点、小间隙、存在毛糙的边缘等

所以我们在视觉检测项目过程中相机采集到的图像遇到上述问题时可以合理运用开运算与闭运算,可以简化图像预处理的操作步骤,去除图像上的非目标主体外的干扰,有效的优化目标主体核心区域,使之提取出图像上理想的区域范围。 运行效果如下图所示:

2.png

在上期课程中,我们讲述了如何使用 VPLC系列 机器 视觉运 动控制 一体机 使用 相机进行 图像膨胀腐蚀 的课程。 本期课程正运动小助手给大家分享一下 VPLC系列 机器 视觉运 动控制 一体机进行 图像开运算和闭运算 的课程。


教学视频





01
VPLC控制器


(一)VPLC516E构架图

3.png

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




02
课程主要使用的指令


1. ZV_OPENING  -- 开运算

ZV_OPENING(src,dst,kw[,kh = 0])
参数说明:

src:ZVOBJECT类型,源图像

dst:ZVOBJECT类型,开运算后的图像

kw:结构元素宽度,大于0

kh:结构元素高度,大于等于0,若为 0 则 kh = kw

2. ZV_CLOSING  -- 闭运算

ZV_CLOSING(src,dst,kw[,kh = 0])

参数:

src:ZVOBJECT类型,源图像

dst:ZVOBJECT类型,闭运算后的图像

kw:结构元素宽度,大于0

kh:结构元素高度,大于等于0,若为 0 则 kh = kw

3.原理

图像开运算与闭运算与膨胀和腐蚀运算有关,由膨胀和腐蚀两个运算的复合与集合操作(并、交、补等)组合成的运算构成

A.开运算

它是先对图像腐蚀后膨胀。通过腐蚀能够去除小范围内非目标区域,同时也能把阈值范围相近的元素分隔开,最后通过膨胀填补腐蚀过大造成的小间隙。

因此,它可以去除一些孤立、细小的点,平滑毛躁的样品边缘,同时目标区域内的面积也不会有明显的变化,类似于给样品“去毛刺”的处理效果。 所下图所示:

4.png

通过以上对比图可得知,原图经过开运算处理后,可见目标主体边缘的干扰被消除,图像上的目标主体更突出。

B.闭运算

它是先对图像膨胀后腐蚀。它处理图像上目标区域内部的空洞、外部孤立的点、目标区域的外观和面积不会有所明显的变化,简单来说它类似于“填补空隙”。它与之前课程中讲述到单独进行膨胀运算不同的是,它在填补缝隙的同时不会使目标边缘轮廓加粗。下图所示:

5.png

通过以上对比图可得知,原图经过闭运算处理后,可见目标主体边缘与四周引脚没有连接和边缘缺失的部分得到了填充,使图像上的目标主体形状变得更完整。

C.总结

综上所述可知,开运算更适合去除图像上的杂点和噪声等非目标主体的特征元素。而闭运算则是相反,它是用于填补区域中小空隙等目标主体缺失的部分。所以开运算和闭运算与进行膨胀腐蚀相比,它们是不会改变目标主体特征的核心形态。




03
软件实现


1. 打开ZDevelop软件:新建名称为“开闭运算.zpj”项目→新建“HMI”文件→新建“main.bas”文件 (用于编写界面响应函数、并开启HMI自动运行任务) →新建“图像采集.bas”文件 (用于实现相机采集功能) →新建“初始化.bas”文件 (用于初始化测量参数) →文件添加到项目。

6.png

2.设计HMI主界面和关联它的控件变量。

7.png

3.编写实现对图像进行开运算和闭运算的执行函数。


          GLOBAL sub main()


                 ZV_IMGCOPY(GrabImg,testImg)    '复制图像  

                 if gv_open_switch=1 THEN

                    ZV_OPENING(testImg,testImg,ga_open(0),ga_open(1))      '矩形结构的图像开运算

                 endif

                 if gv_clos_switch=1 THEN

                    ZV_CLOSING(testImg,testImg,ga_closed(0),ga_closed(1))    '矩形结构的图像闭运算

                 endif

                 ZV_LATCH(testImg,1)

   

         ENDSUB

4.效果演示。


8.png

正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业。正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。主要业务有:运动控制卡_运动控制器_EtherCAT运动控制卡_EtherCAT控制器_运动控制系统_视觉控制器__运动控制PLC_运动控制_机器人控制器_视觉定位等等。

本次,正运动技术【机器视觉运动控制一体机小课堂】三分钟实现开运算和闭运算,就分享到这里。

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


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

邮箱留言

Copyright © 2013 正运动技术有限公司 Design by Zmotion 版权所有   粤ICP备13037187号    Powered by www.zmotion.com.cn 运动控制器-运动控制卡

在线咨询