今日头条
背景
在实际的机器视觉项目应用当中图像质量效果是视觉处理方案能否准确和稳定运行的关键因素。如要对图像区域内的目标边缘进行消除、连接、合并、过滤杂点或平滑等处理时,需要进行图像膨胀腐蚀。
膨胀腐蚀区域的形状和大小由结构元素决定。结构元素可以理解成一个二维矩阵,矩阵元素的值为0或者1。通常它在对图像进行膨胀腐蚀操作中会经常运用到。可以通过ZV_MORPHSE指令对结构元素进行自定义形状和大小。
它的大小可以根据膨胀或腐蚀的程度大小决定。结构元素越大,白色区域被膨胀扩张或被腐蚀缩小的区域就会越大。
(本节课采用的是矩形结构元素)运行效果如下图所示:
在上期课程中,我们讲述了如何使用VPLC系列机器视觉运动控制一体机使用相机进行中值滤波去除噪点的课程。本期课程正运动小助手给大家分享一下VPLC系列机器视觉运动控制一体机进行图像膨胀腐蚀的课程。
01VPLC控制器
(一)VPLC516E构架图
(二)课前准备
1.电脑一台,安装ZDevelop3.10以上版本软件
2.VPLC516E一台
3.24V直流电源一个
4.网线一根5.WinSCP软件
6.电线若干
02课程主要使用的指令
1.ZV_DILATE -- 矩形膨胀
ZV_DILATE(src,dst,kw[,kh = 0])
参数说明:
src:ZVOBJECT 类型,源图像为单通道或三通道图像
dst:ZVOBJECT 类型,膨胀后图像
kw:结构元素宽度,范围[1,1023]
kh:结构元素高度,范围[1,1023],若为 0 则 kh = kw
2.ZV_ERODE -- 矩形腐蚀
ZV_ERODE(src,dst,kw[,kh = 0])
参数:
src:ZVOBJECT类型,源图像
dst:ZVOBJECT类型,腐蚀后图像
kw:结构元素宽度,大于0
kh:结构元素高度,大于等于0,若为 0 则 kh = kw
3.原理
图像的膨胀(dilation)和腐蚀(erosion)是两种基本的形态学运算,主要用来寻找图像中的极大区域和极小区域。
其中膨胀类似“领域扩张”,将图像的高亮区域或白色部分进行扩张,其运行结果图比原图的白色区域更大。效果如下图所示:
腐蚀类似“领域被蚕食”,将图像的高亮区域或白色部分进行缩减细化,其运行结果图比原图的白色区域更小。效果如下图所示:
03软件实现
1.打开ZDevelop软件:新建名称为“膨胀腐蚀.zpj”项目→新建“HMI”文件→新建“Basi1c.bas”文件(用于编写界面响应函数、并开启HMI自动运行任务)→新建“相机采集.bas”文件(用于实现相机采集功能)→新建“初始化.bas”文件(用于初始化测量参数)→文件添加到项目。
2.设计HMI主界面和关联它的控件变量。
3.编写实现对图像进行膨胀腐蚀的执行函数。
GLOBAL sub main()
ZV_IMGCOPY(GrabImg,testImg) '复制图像
ZV_DILATE(testImg,testImg,ga_swell(0),ga_swell(1)) '矩形结构元对图像区域进行膨胀
ZV_ERODE(testImg,testImg,ga_corrode(0),ga_corrode(1)) '矩形结构元对图像区域进行腐蚀
ZV_LATCH(testImg,1)
ENDSUB
本次,正运动技术【机器视觉运动控制一体机小课堂】三分钟实现图像膨胀腐蚀,就分享到这里。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !