The value of Zmotion is to bring customers more success!
《视频教程:机器视觉运动控制一体机应用例程|检测手表内部零件正反和定位》
一 检测原理
(一)检测需求
检测当前放置的零件产品处于正面还是反面,以轮齿方向进行区分。
(二)软件算法
02 软件实现
1.打开ZDevelop软件:新建名称为“正反检测和定位.zpj”项目→新建HMI文件→新建“main.bas”文件,用于编写界面响应函数→新建“global_variable.bas”文件用于存放全局变量并开启HMI自动运行任务→新建“InitLocator.bas”文件,用于初始化测量参数→新建“draw.bas”文件用于更新绘制ROI数据→新建“camera.bas”文件用于实现相机采集功能→文件添加到项目。
2.设计HMI界面。
3.关联HMI主界面控件变量。
4.点击[元件]→[新建窗口],新建创建模板窗口,设计窗口布局。
5.点击[元件]→[新建窗口],新建编辑模板窗口,设计窗口布局。
6.本期课程的代码编写部分是基于前面课程中讲述到的形状匹配课程,新增了矩阵ROI检测区域,并将形状匹配的位置结果作为矩阵ROI区域的位置补正源。
接着计算矩阵ROI检测区域内黑色连通区域的面积,最后将检测到零件的黑色连通区域面积进行上下限设置,判断出零件的正反面。此次课程完整代码和示例图片可通过下方链接获取。
计算刚性变换矩阵,进行位置补正使用到的指令:
ZV_GETRIGIDVECTOR(参数1:矩阵类型,计算的刚性变换矩阵,2行3列,参数2:参数2:变换前向量的x坐标,参数3:变换前向量的y坐标,参数4:变换前向量1的方向,参数5:变换后向量2的x坐标,参数6:变换后向量2的y坐标,参数7:变换后向量2的方向)
ZV_REAFFINE(参数1:区域,参数2:变换矩阵,2行3列,参数3:变换后的区域)
ZV_RETHRESH(参数1:输入图像,参数2:掩膜区域,参数3:二值化得到的区域,输出参数,参数4:低阈值,范围[0,255],参数5:高阈值,范围[0,255],thresh1大于等于thresh0)
ZV_REDIFF(参数1:区域1,参数2:区域2,参数3:计算的区域1和区域2的差集)
ZV_REAREA(参数1:区域,参数2:TABLE索引,输出面积,输出参数)
ZV_REGION(参数1:绘制的目标图像,参数2:行程编码的区域,参数3:绘制类型,0-绘制re有效部分,1-绘制re非有效部分,2-绘制re外边缘部分,参数4:指定绘制区域的颜色)
ZV_MRCORRECT(参数1:输入测量区域,参数2:补正的变换矩阵,参数3:变换后的测量区域)
ZV_MEASURER(参数1:绘制的目标图像,参数2:要绘制的测量器,参数3:测量器主颜色,参数4:测量器子区域颜色)
03 操作演示
(一)操作步骤
查看运行效果:将项目下载到仿真器中→使用本地图片→单次采集→学习模板→HMI主界面框选矩形ROI检测区域→设置面积上下限参数→点击使用补正源→点击测试,查看当前图像检测结果→点击连续运行,查看连续运行效果→结束。
(二)效果演示
本次,正运动技术机器视觉运动控制一体机应用例程丨检测手表内部零件正反和定位,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。