1.需求:找出图像中的这个图形。
2.步骤
使用CogPMAlignTool工具,该工具是模板匹配工具,见名知意,所谓模板匹配工具就是说先使用该工具对一张图像建立模板,然后用这个模板在其他图像上进行匹配,匹配上了就说明找到了,匹配不上就说明没有找到。
将输入图像给到CogPMAlignTool工具。
抓取一张训练图像,将矩形框移到该图形的位置,表明自己对该图形感兴趣,确定训练区域和原点。
训练。
调整运行参数,使模板的适应范围更广。
这样就可以使用训练好的模板到其他图像中去检测目标图形了。
在官方示例中还有下面这部分,这又是干什么的呢?且听我娓娓道来。
之前我们是以这张图像为模板来找中间的图形的,既然我们是拿这张图像作为模板的,那就说明这张图像很优秀,优秀到可以作为其他图像的参考,那么我们就假设这张图像中的所有图形都是标准的。
现在有一个需求是:在这张图像的右上角有一个三角形,我们把它当作标准件,我们想要以该形状为标准检测其他图像中的这个形状是否是标准的(是否是有缺陷的),因此就需要用到CogPatInspectTool工具。
CogPatInspectTool工具通过将当前图像与训练图像对比,获取原始差异图像,再将原始差异图像与阈值图像进行对比,进而获取阈值差异图像得到最终的当前图像与训练图像的差异,通常差异区域为缺陷所在。
还有一个问题:CogPatInspectTool工具放在CogPMAlignTool工具后面是偶然吗?还是必然?
答案是必然的。如上图,我们想要使用CogPatInspectTool工具判断待检测图像中的该图形是否有缺陷,待检测图像实际上只是在模板图像的基础上旋转了一个角度而已,也就是说待检测图像除了位姿和模板图像不一样,其他地方都一摸一样。但是CogPatInspectTool工具并不能智能到让两张图像现在位姿上保持一致,然后进行缺陷检测。因此CogPatInspectTool工具需要搭配着CogPMAlignTool工具使用,由CogPMAlignTool工具告诉它图像之间的位姿关系和大小关系,然后CogPatInspectTool工具就可以排除掉位姿和大小的影响,进行缺陷检测了。
在作业中添加CogPatInspectTool工具。
该工具需要以下几个参数:
那么我们就需要CogPMAlignTool工具的输出参数中有这么几个参数。为CogPMAlignTool工具添加终端。
- InputImage:原始的输入图像。
- Pose:输入图像与模板相比的位姿关系。
- Pattern.TrainImage:模板图像。
- Pattern.Origin:模板图像的原点。
打开CogPatInspectTool工具,框选训练区域,训练模板。
OK,大功告成。下面来分析一下。
选择MatchImage,表示图像与模板图像的匹配度。
当输入的图像为模板图像自身时,也就是说当拿自身和自身进行匹配时,是这样的。
当输入的是其他图像时,匹配的结果是这样的。因此就很容易看出来,图像中不同的颜色代表匹配度,图像中的红色区域说明匹配度很低,因此该区域可能存在缺陷。
也可以选择DifferenceImageAbsolute。
当输入的是模板图像本身时:
漆黑一片。
当输入的是其他图像时:
像素值越大的地方说明该区域与模板图像的差异越大。