halcon 转opencv,halcon opencv

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • opencv图像识别数字,opencv 识别
  • opencv图像识别数字,opencv 识别,如何基于opencv实现简单的数字识别
  • opencv图像的旋转角度计算,opencv图像仿射变换
  • opencv图像的旋转角度计算,opencv图像仿射变换,OpenCV图像几何变换之透视变换
  • opencv图像的旋转角度计算,opencv 旋转任意角度
  • opencv图像的旋转角度计算,opencv 旋转任意角度,opencv图片的任意角度旋转实现示例
  • opencv图像处理函数,opencv图像轮廓合并
  • opencv图像处理函数,opencv图像轮廓合并,OpenCV图像处理之七种常用图像几何变换
  • opencv双线性插值函数,opencv 图像插值
  • LBPH人脸识别,基于opencv的人脸识别技术
  • LBPH人脸识别,基于opencv的人脸识别技术,Opencv LBPH人脸识别算法详解
  • ,,OpenCV黑帽运算(BLACKHAT)的使用
  • opencv双线性插值函数,opencv 图像插值,C++ OpenCV实现图像双三次插值算法详解
  • ,,C语言 OpenCV实现柱面投影
  • ,,C++ Opencv imfill孔洞填充函数的实现思路与代码
  • 留言与评论(共有 条评论)
       
    验证码: