第十篇 机器视觉案例 之 零件边缘缺陷检测
1.案例要求
检测零件的边缘是否有缺陷,如果有则不合格标明"NG",如果没有缺陷则合格标明“OK”,并框选缺陷区域。
合格的零件图象:
2.实现思路
使用缺陷检测工具CogPatInspectTool将合格图像与不合格图像进行对比得到缺陷部分,再使用斑点工具获得缺陷部分去除干扰项,合格图像可以通过模板匹配工具的训练图像获得也可以自己内部训练。
2.1 模板匹配工具找到零件位置并输出GetPose()给缺陷检测工具
2.2 训练缺陷工具获得缺陷部分
注意:当匹配到合格图像时,由于没有缺陷,缺陷工具的输出图像是纯色,所以斑点工具在接受图像后回报错,需要在代码中使用Try-Catch 异常捕获来捕获这个异常。
3.使用控件
3.1 图像转换工具 —— CogImageConvertTool
3.2 模板匹配工具 —— CogPMAlignTool
3.3 缺陷识别工具 —— CogPatInspectTool
3.4 斑点工具 —— CogBlobTool
4.代码逻辑
gc.Clear();
CogGraphicLabel label = new CogGraphicLabel();
label.Text = "NG";
label.Color = CogColorConstants.Red;
label.X = 200;
label.Y = 200;
try
{
foreach(ICogTool tool in mToolBlock.Tools)
mToolBlock.RunTool(tool, ref message, ref result);
CogBlobTool cbt = mToolBlock.Tools["CogBlobTool1"] as CogBlobTool;
CogPolygon rg = cbt.Results.GetBlobs()[0].GetBoundary();
rg.Color = CogColorConstants.Red;
gc.Add(rg);
}
catch
{
label.Text = "OK";
label.Color = CogColorConstants.Green;
}
gc.Add(label);
5.实现效果
6.知识点总结
6.1 缺陷检测工具的使用