您的位置:首页 > 编程语言 > VB

透明玻璃珠进行自动快速计数

2016-11-19 18:40 204 查看
本文描述如何对毫不起眼的透明小玻璃珠进行自动计数,或许有人说使用机器视觉大师对这些

价值不大的小东西自动计数没有实际意义,有辱大师名号。是的,确实没有什么意义,除非

读者身边有价值比较大的产品如珠宝,珍珠,精密小零件等,这些产品在交易的时候不是论斤

卖的,而是论颗或粒卖的,不过,这些产品太小了,如果数量多的话,人工用肉眼来数,还真是

费神费眼。笔者本人没有什么贵重珠宝,所以使用透明小玻璃珠来说明如何使用模板识别算子

进行类似产品自动计数,希望对读者能起到抛砖引玉的作用。

 

下图是用圆形无底物品围在工作台上做测试的玻璃珠图。


 

 

从上图可以看出,玻璃珠是圆形的,翡翠绿,很像珠宝,紧挨在一起,乍看之下,

很多读者可能会不由自主地想到使用BLOB算子进行计数。然而,由于玻璃珠相互紧靠

在一起,使用BLOB算子在分离的时候,不是那么可靠,容易少计。笔者使用模板识别

算子可靠地对这些产品进行计数。下面将详细介绍具体的实现过程。

 

为了节省篇幅,笔者对机器视觉大师的一些基本操作不再介绍,直接进入相关的操作环节。

 

添加模板识别算子

假设机器视觉大师已经切换到”实时测量”模式。下面是建立模板识别算子进行玻璃珠计数

的操作过程。

一、点击菜单”控件” ->”定位类”->”模板查找”添加到视场,将算子拖动到适当位置。

 

二、双击该算子,进行参数设置和模板学习。显示参数设置窗口。


 

选择模板区形状为圆形,并且选择对称方式调整大小。关闭后,重新调整模板和搜索区

大小。如下图:


 

注意:将搜索区覆盖所有玻璃珠出现的区域。看到模板区没有,比实际玻璃珠图像要小。

 

三、在“学习”页,点击”学习模板”进行学习。


 

四、在”识别”页,选择”绝对差”识别方法,最小分数设置为0.93以上。初始分数设置0.6左右。

最多实例数设置了100(假设,视场里面最多不超过100颗玻璃珠)。这些参数请根据实际视场

的图像进行合适设置。


 

 

 

 

编写脚本

 

点击菜单”模式”->”编辑脚本”, 弹出”编辑脚本”对话框。选择测量类型为“产品点数”。


 

上面的语句解释如下:

将视场sight1的模板识别算子pfind1的计数结果赋值给count变量。

 

虽然笔者在脚本里面仅使用了一个变量,实际上产品计数类任务支持3个系统变量:

count,want和diff,具体说明如下:

变量名

说明

类型

count

实际的计数

整数

want

目标数

整数

diff

差额

整数

 

 

检测运行

点击菜单”相机”->”测量运行”,进入检测状态。倒入任意数量的玻璃珠,然后点击”下一个”

按钮完成一次自动测量。


 

 

 

实际应用建议

本文描述的视场相机使用了130万分辨率彩色相机,背光,由于分辨率不是很高,所以视场

范围不是很大。相机分辨率高,计数的视场范围应该越大。需要强调的是,不同的产品进行

计数的时候,识别参数一定要根据具体的图像进行设置,否则可能引起计数结果错误。

本文测试使用的机器视觉大师版本为4.1.161115

最新版多多摄像头大师(机器视觉大师)下载地址:http://www.hdy.net.cn/softshare/ddcam.htm

技术交流QQ群: 295860595  该群文件空间即时更新多多摄像头大师最新版本,下载速度更快
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息