正运动机器视觉应用例程 | 检测面饼有无异物
我们将和大家一起分享如何实现检测面饼有无异物的功能。
工具/原料
windows10
ZDevelopV3.10.09
运动控制器VPLC516E
检测原理
1、检测当前放置的面饼表面是否存在异物,如果表面存在异物,那么样品则为NG,以此来判定面饼的检测结果。
2、先将图片进行二值化处理,其次在矩形检测区域内进行B雉搽妤粲LOB分析,计算黑色连通区域的面积(像素数量),再对区域列表中的黑色连通区域面积进行过滤。接着获取区域列漉胜衲仰表中符合条件的异物数量,并计算当前检测到的异物面积显示出来,最后通过判定异物数量是否大于0,以此来判定检测结果。如果异物数量小于0,那么当前检测结果为OK,否则为NG。
软件实现
1、打开ZDevelop软件:新建名称为“e垓矗梅吒xistDetect.zpj”项目→新建“HMI”文件→新建“main.bas”文件(用于编写界面响应函数像粜杵泳)→新建“global_variable.bas”文件(用于存放全局变量并开启HMI自动运行任务)→新建“detectParam.bas”文件(用于初始化测量参数)→新建“draw.bas”文件(用于更新绘制ROI数据)→新建“camera.bas”文件(用于实现相机采集功能)→文件添加到项目。
2、设计HMI界面。
3、关联HMI界面控件变量。
4、本期课程的代码实现的功能主要使用到的指令是二值化、差集运算、计算连通区域、过滤面积的指令。ZV_RETHRESH(参数1:输入图像,焊剑杂锭参数2:掩膜区域,含结束符,参数3:二值化得到的区域,输出参数,参数4:设置低阈值范围,参数5:设置高阈值范围)ZV_REDIFF(参数1:区域1,参数2:区域2,参数3:计算的区域1和区域2的差集)ZV_RECONNECT(参数1:输入区域,参数2:列表,输出参数)ZV_REFILTER(参数1:待过滤的区域列表,参数2:区域特征类型,参数3:特征值的下限,参数4:特征值的上限,参数5:是否反向选择)
操作演示
1、查看运行效果:将项目下载到控制器中→使用本地图片→单次采集→设置最小面积为2000→设置最大面积为10000→点击测试(查看当前样品检测结果)→点击运行(查看连续运行效果)→结束。