halcon 转opencv,halcon opencv
导读
本文主要介绍一个复杂背景下缺陷检测的实例,并将阿尔孔实现转为OpenCV。
实例来源实例来源于51哈尔孔论坛的讨论贴:
https://www.51halcon.com/forum.php?mod=viewthreadtid=1173 extra=page=1
阿尔孔实现参考回帖内容,将代码精简如下:
read_image (Image, 1 ./1 .BMP )dev _ set _ line _ width(3)threshold(Image,Region,30,255)reduce_domain (Image,Region,Image reduced)mean _ Image(Image reduced,ImageMean,200,200)dyn_threshold (ImageReduced,ImageMean,SmallRaw,35, dark)opening_circle (SmallRaw,RegionOpening,8)closing_circle (RegionOpening,RegionClosing,10)connected(Region closing,connected regions)dev _ color( red )dev _ disp
如上图所示,可以较好的定位缺陷位置。
开放计算机视觉实现分析实现方法与思路:
[1] 原图转灰度图后使用核大小201做中值滤波;
[2] 灰度图与滤波图像做差,然后阈值处理
[3]圆形核做开运算,去除杂讯
[4]圆形核做闭运算,缺陷连接
[5] 轮廓查找绘制
实现代码(Python-OpenCV):
import cv2 import numpy as NP img=cv2。我在读(./1.bmp)cv2.imshow(src ,img)gray=cv2.cvtColor(img,cv2 .COLOR _ bgr 2 gray)mean=cv2。medianblur(gray,201)cv2.imshow(mean ,mean)#diff=cv2.absdiff(gray,mean)diff=gray-mean cv2。im show( diff ,diff)cv2.imwrite(diff.jpg ,diff)_,thres_low=cv2.threshold(diff,150,255,cv2 .THRESH_BINARY)#二值化_,thres_high=cv2.threshold(diff,220,255,cv2 .THRESH_BINARY)#二值化thres=thres _ low-thres _ high cv2。im show( thres ,thres)k1=np.zeros((18,18,1),np.uint8)cv2.circle(k1,(8,8),9,(1,1,1),-1,cv2 .LINE_AA)k2=np.zeros((20,20,1),np.uint8)cv2.circle(k2,(10,10),10,(1,1,1),-1,cv2 .LINE _ AA)开口=cv2。形态学(thres,cv2 .MORPH_OPEN,k1)cv2.imshow(opening ,opening)closing=cv2。形态学(开口,cv2 .MORPH_CLOSE,k2)cv2.imshow(closing ,closing)轮廓,hierarchy=cv2。查找轮廓(闭合,cv2 .RETR _外部,cv2 .CHAIN _ APPROX _ NONE)用于轮廓中的CNT:(x,y,w,h)=cv2。如果w5和h 5:# cv2,则边界矩形(CNT)。矩形(img,(x,y),(x w,y h),(0,255,0),2) cv2.drawContours(img,Contours,-1,(0,0,255),2)cv2.drawContours(img,CNT,2,(0,0,255),2)cv2.imshow(result ,img)
逐步效果演示滤波效果:平均
做差效果:差异
阈值效果:thres
开运算效果:打开
闭运算效果:关闭
轮廓查找绘制最终结果:
结尾语[1] 算法只是针对这一张图片,实际应用为验证算法鲁棒性还需大量图片做测试方可;
[2]缺陷检测如果用传统方法不易实现,可以考虑使用深度学习分割网络如:mask-rcnn、U-net等
完整代码与素材将发布在知识星球中,有兴趣可加入获取。
相关文章连接:
阿尔孔缺陷检测实例转开放计算机视觉实现(一)
阿尔孔缺陷检测实例转开放计算机视觉实现(二)
阿尔孔缺陷检测实例转开放计算机视觉实现(三)
阿尔孔缺陷检测实例转开放计算机视觉实现(四)
阿尔孔缺陷检测实例转开放计算机视觉实现(五)混合颜色药片缺陷检测
阿尔孔缺陷检测实例转开放计算机视觉实现(六)瓶口缺陷检测
更多视觉图像处理相关内容,请扫码关注:OpenCV与人工智能深度学习。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。