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

  在我的上一篇文章中介绍了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)
endif
return ()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值