1.需求:找到图像中的这个零件。
2.大致思路:使用CogPMAlignTool工具,先训练出一个模板,然后使用模板对图像进行匹配。
3.步骤:
添加CogPMAlignTool工具,将输入图像给到工具。
选择一张清晰的图像作为模板图像进行训练。
把角度设置成-180到180deg范围,缩放设置成0.6到1.6范围。这样模板匹配的范围更广,不会受图像位姿和大小的影响。
运行。
会发现,有的可以识别出来,有的识别不出来。
下面就需要调节各个参数,识别出所有图像中的该零件了。
首先,勾选“忽略极性”,再次训练模板。
这张图像原本是识别不出来的,现在识别出来了。
这里分析一下原因。模板图像和这张图像的区别是,模板图像的背景颜色是黑色的,零件较背景颜色亮;这张图像的背景颜色是白色的,零件较背景颜色暗。
极性是指特征图形到背景的颜色过渡情况,对于模板图像来说,它的极性是由亮过渡到暗;对于这张图像来说,它的极性是由暗过渡到亮。因此模板图像的极性与这张图像的极性并不相同,如果我们不忽略极性的话,就无法进行匹配。
当然,勾选忽略极性会增大模板匹配的适应范围,但是,同时也损失了时间,试想一下,原本通过极性这一条件被排除在外的图像现在需要考虑在内了,查找时间自然就增加了。
仍然有图像识别不出来。
以最后一张图为例,图中有3个零件,但是只能识别出其中1个。这是因为查找概数默认参数为1,这样的话,工具只会到图像中去找到一个与模板匹配的区域,找到的这个区域一定是打分最高的区域。我们这张图中有3个零件,因此需要把查找概数设置成3。
再次运行,会发现这次可以找出两个零件,但是其中有一个零件是红色的,这是因为该零件的分数为0.484低于接受阈值,我们试着将接受阈值设置成0.4,再次运行。
这次就可以全部识别出来了。
这张图片太模糊了,仍然识别不出来。
这可怎么办啊!!!别慌,还有参数。计分时考虑杂斑,杂斑指的是影响模板匹配的噪声,直观上理解就是杂斑使图像看起来很糊,杂斑过多会影响得分,计分时考虑杂斑会拉高得分。我们取消该选项的选择,再次运行。
识别出来了。
又出问题了,这张图中会多识别,这是因为我们把接受阈值调得太低了,我们还是调回0.5。
将粗糙度接受阈值调节为0.2,再次运行,就可以识别出来所有的零件了。