粘合度高的物体识别

首先看看要使用的图像(这是闲着无聊在halcon网上找的一张实际生产中的图):

粘合度高的物体识别_第1张图片

从图像中看,颗粒状物体都有不同程度的粘连在一起,这给我们在处理上带来了一定的麻烦。

首先想,对于这样的图,人是怎么识别的?抽象出来就是:先记住颗粒的形状,再去里面找。因此很明显想到的是图像匹配识别,不过粘连度高的就不好使用特征模板匹配了,因为粘连的物体本身其特征就模糊了很多。这里建议使用ncc模板匹配,至于ncc与shape之间的差异,请访问:https://blog.csdn.net/weixin_44490080/article/details/94552838

看代码

read_image (Image, 'C:/Users/斌/Desktop/halcon-项目/颗粒/9_13810_03cee492a78b870.bmp')
binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)
connection (Region, ConnectedRegions)
*拿到其中一粒创建模板
select_obj (ConnectedRegions, ObjectSelected, 2)
reduce_domain (Image, ObjectSelected, ImageReduced)
create_ncc_model (ImageReduced, 'auto', rad(-180), rad(180), 'auto', 'use_polarity', ModelID)
*匹配模板
find_ncc_model (Image, ModelID, rad(-180), rad(180), 0.6, 0, 0.5, 'true', 1, Row, Column, Angle, Score)
clear_ncc_model (ModelID)
gen_cross_contour_xld (Cross, Row, Column, 16, Angle)
dev_clear_window ()
dev_display (Image)
dev_display (Cross)

效果(注意,这里只识别了大颗粒没有识别小颗粒,若要继续识别小颗粒需另建模板)

粘合度高的物体识别_第2张图片

你可能感兴趣的:(halcon,粘连度高的物体识别)