AOI中通用的图像检测算法实现——母版比对

来源:互联网 发布:南京软件学校 编辑:程序博客网 时间:2024/05/17 04:38

  在我的上一篇文章中介绍了AOI中通用的图像检测方法——母版比对。现在如下的代码实现了如何进行母版比对。其中提升检测率的方法有3个:
  (1)将RGB图转换为灰度图再进行比对
  (2)将母版图上的金面作为ROI
  (3)使用腐蚀算子来消除边缘干扰

*****************************************************************使用与母版相减的方式***************************************************************(1)将RGB图转换为灰度图再进行比对***************************************************************rgb1_to_gray (BrightLeftWireBondingImageReduced, GrayRec)rgb1_to_gray(DarkLeftWireBondingImageReduced,GrayStandard)****************************************************************(2)根据母版图像的金面设定检测区域****************************************************************threshold (GrayStandardImageReduced, StandardRegion, 200, 255)****************************************************************(3)使用腐蚀算子来消除边缘干扰****************************************************************erosion_circle (StandardRegion, StandardRegion, 2)*缩小检测范围reduce_domain (GrayRec, StandardRegion, GrayRecImageReduced)reduce_domain (GrayStandard, StandardRegion, GrayStandardImageReduced) abs_diff_image (GrayRecImageReduced,GrayStandardImageReduced,ImageAbsDiff, 1)threshold (ImageAbsDiff, Region, 80, 255)connection (Region, ConnectedRegions)*误差主要是水平线,因此通过高度大于3个像素、面积大于9个像素来判断select_shape (ConnectedRegions, ConnectedRegions, ['area','height'], 'and', [9,3], [99999,99999])count_obj (ConnectedRegions, Number)if(Number > 0)    CurrentNgLight := 0    CurrentNgCode := 0    union1 (ConnectedRegions, RegionUnion)    smallest_rectangle1 (RegionUnion, Row1, Column1, Row2, Column2)    CurrentNgPos := [Row1-10, Column1-10, Row2+10, Column2+10]    CurrentNgDescribe := 'LWBConnectedRegions有变色'    MFOL2_Gather_Ng (CurrentNgCode, CurrentNgPos, CurrentNgDescribe, 0, 0)endifreturn ()
0 0
原创粉丝点击