机器视觉运动控制一体机应用例程|产品全局外观检测(十一)
前面讲述的外观检测的课程中,我们都是以矩形ROI区域框选我们需要检测的外观表面范围。
但是很多产品外形通常都不是规则的矩形或者圆形,用矩形或者圆形ROI区域很难对产品的外观进行全局检测,可能会遗漏掉某些细节部分。
因此,我们引入了将提取的产品轮廓转换成检测区域的算法,就可以实现对产品进行全局外观检测,避免遗漏细节或者增加无需检测的干扰区域。
采用机器视觉检测方法,相对于传统人工检测方法,降低了劳动成本和提高工作效率,避免了工人因主观因素和生理疲劳造成的不良品漏检,而造成的劳动成本增加和工作效率的降低的问题。
上期课程,我们讲述了机器视觉方案中工件检测圆度的应用例程,本期课程我们将和大家一起分享如何实现产品全局外观检测的功能。
13:47
(一)检测需求
检测USB-C接口充电头外观表面是否有脏污。
(二)软件算法
(一)软件实现
1.打开ZDevelop软件:新建名称为“ContourToRegion.zpj”项目→新建“HMI”文件→新建“main.bas”文件,用于编写界面响应函数→新建“global_variable.bas”文件用于存放全局变量并开启HMI自动运行任务→新建“draw.bas”文件用于更新绘制ROI数据→新建“camera.bas”文件用于实现相机采集功能→文件添加到项目。
2.设计HMI界面。
3.关联HMI界面控件变量。
4.本期课程代码演示是基于上节课程中工件圆度检测的示例代码另外添加了本期课程使用的最小和最大轮廓的设置参数,以及轮廓转换成检测区域的指令。此次课程完整代码和示例图片可通过下方链接获取。
轮廓转换成检测区域的指令:
ZV_CONTAPPROXPOLY (输入轮廓或轮廓列表,输出多边形逼近后的轮廓或轮廓列表,轮廓分割的精度,分割精度越小分割的多边形线段就越多,多边形就越逼近轮廓,常用值 0.5,1,1.5,2)
ZV_CONTGENPARALLEL(输入轮廓,生成的外扩或内缩的轮廓,输出轮廓,外扩或内缩距离,距离单位与轮廓点单位一致,正数为平行外扩,负数为平行内缩)
ZV_REGENPOLYGON(轮廓点集,生成多边形区域,输出参数)
(一)操作步骤
查看运行效果:将项目下载到仿真器中→使用本地图片→单次采集→选择ROI类型为全区域类型→阈值模式设置为手动阈值→阈值范围设置180~255→设置轮廓长度为600~6500→点击测试,查看检测效果→点击运行,查看连续运行效果→结束。
01:27