print_inspection 印刷检测 Halcon 同类软件 Malcon CompareVariationModel

    在印刷行业,越来越多的项目应用到机器视觉,用来代替人工肉眼检测,保证了印刷的质量。

特别是医药行业的印刷标签,少一个小数点,就会导致患者吃药的分量千差万别,容易出安全事故,毕竟人命关天。

   本案例检测印刷上的文字和电路图,检测是否有模糊、飞墨、缺失或移位。

 

 

涉及到的算子:二维边缘提取,灰度形态学,图像变换、阈值分割等等

//以下案例为印刷检测,为了简化篇幅,省略了模板匹配
//直接读取两张图片来对比
ReadImage(Image1,'relay_01.png')//读取图像
GetImageSize(Image1,Width,Height)//获取图像长宽
EdgesImage(Image1,ImaAmp,ImaDir,'canny',0.5,'none',20,40)//提取印刷的边缘
GrayDilationRect(ImaAmp,VariationImage, 1,1)//用边缘来膨胀1,作为免检区域
CreateVariationModel(Width,Height,'byte', 'direct', VarModelID)//创建变体实例
//准备直接变体模型,偏差阈值为15
PrepareDirectVariationModel(Image1, VariationImage, VarModelID, 15, 1)
//获取最小和最大的色差范围的两张图像
GetThreshImagesVariationModel(minImage,maxImage,VarModelID)

ReadImage(Image2,'relay_02.png')//读取图像
//省略了模板匹配,直接从第二张图像的XYQ来映射第一张图像的
//同样区域的XYQ来做仿射变换的实例
VectorAngleToRigid( 489.274, 528.006, -0.0118,487.204, 522.353, 0,HomMat2D)
//映射第二张图像
AffineTransImage(Image2,ImageAligned,HomMat2D,'constant', 'false')
CompareVariationModel (ImageAligned,RegionDiff,VarModelID)//开始对比得到NG区域
Connection(RegionDiff,ConnectionRegions)//连通区域
SelectShape(ConnectionRegions,SelectedRegions,'area','and', 50, 300)//由面积来挑选区域
AreaCenter(SelectedRegions,Area,Row,Column)//挑选出的区域的坐标
DispImage(ImageAligned,3600)//显示图像
DispCircle(3600,Row,Column,20)//显示NG的区域
ClearVariationModel(VarModelID)//清除变体实例

posted @ 2021-02-27 15:24  Malcon机器视觉底层库  阅读(707)  评论(0编辑  收藏  举报