0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

复杂背景下缺陷检测将Halcon实现转为OpenCV的实例

新机器视觉 来源:OpenCV与AI深度学习 作者:Color Space 2021-06-30 14:05 次阅读

导读 本文主要介绍一个复杂背景下缺陷检测的实例,并将Halcon实现转为OpenCV。

实例来源

实例来源于51Halcon论坛的讨论贴: https://www.51halcon.com/forum.php?mod=viewthread&tid=1173&extra=page%3D1

Halcon实现

参考回帖内容,将代码精简如下:

read_image (Image, ‘。/1.bmp’)dev_set_line_width (3)threshold (Image, Region, 30, 255)reduce_domain (Image, Region, ImageReduced)mean_image (ImageReduced, ImageMean, 200, 200)dyn_threshold (ImageReduced, ImageMean, SmallRaw, 35, ‘dark’)opening_circle (SmallRaw, RegionOpening, 8)closing_circle (RegionOpening, RegionClosing, 10)connection (RegionClosing, ConnectedRegions)dev_set_color (‘red’)dev_display (Image)dev_set_draw (‘margin’)dev_display (ConnectedRegions)

OpenCV实现

分析实现方法与思路: [1] 原图转灰度图后使用核大小201做中值滤波; [2] 灰度图与滤波图像做差,然后阈值处理 [3] 圆形核做开运算,去除杂讯 [4] 圆形核做闭运算,缺陷连接 [5] 轮廓查找绘制 实现代码(Python-OpenCV):

import cv2import numpy as np

img = cv2.imread(‘。/1.bmp’)cv2.imshow(‘src’,img)gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

mean = cv2.medianBlur(gray,201)cv2.imshow(‘mean’,mean)

#diff = cv2.absdiff(gray, mean)diff = gray - meancv2.imshow(‘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_highcv2.imshow(‘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)opening = cv2.morphologyEx(thres, cv2.MORPH_OPEN, k1)cv2.imshow(‘opening’,opening)closing = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, k2)cv2.imshow(‘closing’,closing)

contours,hierarchy = cv2.findContours(closing, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

for cnt in contours: (x, y, w, h) = cv2.boundingRect(cnt) if w 》 5 and h 》 5: #cv2.rectangle(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)

cv2.waitKey(0)cv2.destroyAllWindows()print(‘Done!’)

逐步效果演示

滤波效果:mean

做差效果:diff

阈值效果:thres

开运算效果:opening

闭运算效果:closing

轮廓查找绘制最终结果:

结尾语

[1] 算法只是针对这一张图片,实际应用为验证算法鲁棒性还需大量图片做测试方可; [2] 缺陷检测如果用传统方法不易实现,可以考虑使用深度学习分割网络如:mask-rcnn、U-net等

—版权声明—

来源:OpenCV与AI深度学习

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波
    +关注

    关注

    10

    文章

    669

    浏览量

    56803
  • OpenCV
    +关注

    关注

    31

    文章

    635

    浏览量

    41616
  • HALCON
    +关注

    关注

    16

    文章

    66

    浏览量

    27343
  • 深度学习
    +关注

    关注

    73

    文章

    5521

    浏览量

    121661

原文标题:Halcon转OpenCV实例--复杂背景下缺陷检测(附源码)

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    X-Ray检测设备能检测PCBA的哪些缺陷

    X-Ray检测设备可以检测PCB(电路板)的多种内部及外部缺陷,如果按照区域区分的话,主要能观测到一几类缺陷: 焊接
    的头像 发表于 02-08 11:36 78次阅读

    背景抑制光电开关的设计及应用

    产线上对零部件进行高精度检测和计数,即使在复杂的工业环境中,如存在强光干扰、不同颜色和材质背景等情况,也能准确检测目标物体,有效减少误判,
    发表于 01-11 13:43

    C#通过Halcon实现3D点云重绘

    C# 通过 Halcon 实现 3D 点云重绘
    发表于 01-05 09:16 0次下载

    C#基于Halcon实现Basler相机采图

    C#基于Halcon实现Basler相机采图
    发表于 01-05 09:16 0次下载

    接近感应单片机在背景抑制光电开关上的应用

    高精度检测和计数,即使在复杂的工业环境中,如存在强光干扰、不同颜色和材质背景等情况,也能准确检测目标物体,有效减少误判,提高生产效率和质量
    发表于 12-27 15:38

    基于 XD08M3232 接近感应单片机的背景抑制光电开关设计与应用

    接近感应单片机的背景抑制光电开关通过合理的硬件设计和有效的软件编程,实现了在复杂背景环境对目标物体的精准
    发表于 12-16 18:56

    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV

    应用场景调整,以获得最佳检测效果。例如,不同的光照条件、背景复杂度或者目标圆的大小都会影响这些参数的选择。 实例代码 from lockzhiner_vision_module.cv2
    发表于 12-14 09:31

    如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板

    本篇测评由优秀测评者“eefocus_3914144”提供。 本文介绍基于米尔电子MYD-LMX93开发板(米尔基于NXP i.MX93开发板)的基于OpenCV的人脸检测方案测试。 Ope
    发表于 11-15 17:58

    基于OpenCV的人脸识别系统设计

    基于OpenCV的人脸识别系统是一个复杂但功能强大的系统,广泛应用于安全监控、人机交互、智能家居等多个领域。下面详细介绍基于OpenCV的人脸识别系统的基本原理、
    的头像 发表于 07-11 15:37 1.6w次阅读

    基于AI深度学习的缺陷检测系统

    在工业生产中,缺陷检测是确保产品质量的关键环节。传统的人工检测方法不仅效率低下,且易受人为因素影响,导致误检和漏检问题频发。随着人工智能技术的飞速发展,特别是深度学习技术的崛起,基于AI深度学习的
    的头像 发表于 07-08 10:30 1719次阅读

    Labview与Halcon图片Image互相转换

    Labview 与Halcon 联合开发 分享一Labview 与Halcon Image格式相互转换的程序, 整理了一个VI,LV_to _Halconxl.vi,可以直接调用,相互转换两种格式
    发表于 06-27 23:00

    外观缺陷检测原理

    的结合应用加速渗透进工业产品的 外观缺陷检测 领域。思普泰克凭借深耕机器视觉多年沉淀的技术实力,建立以深度学习技术为核心的差异化发展优势,开发出视觉引擎等工业级视觉应用产品,全面赋能产品外观缺陷
    的头像 发表于 06-17 17:38 511次阅读
    外观<b class='flag-5'>缺陷</b><b class='flag-5'>检测</b>原理

    洞察缺陷:精准检测的关键

    缺陷检测是生产过程的重要组成部分。它有助于确保产品的高质量和满足客户的需求。缺陷检测有许多不同的解决方案,特定应用的最佳解决方案取决于所检测
    的头像 发表于 02-26 15:44 388次阅读
    洞察<b class='flag-5'>缺陷</b>:精准<b class='flag-5'>检测</b>的关键

    基于深度学习的芯片缺陷检测梳理分析

    虽然表面缺陷检测技术已经不断从学术研究走向成熟的工业应用,但是依然有一些需要解决的问题。基于以上分析可以发现,由于芯片表面缺陷的独特性质,通用目标检测算法不适合直接应用于芯片表面
    发表于 02-25 14:30 1726次阅读
    基于深度学习的芯片<b class='flag-5'>缺陷</b><b class='flag-5'>检测</b>梳理分析

    NI视觉图像转halcon图像

    labview采集图片可用用它转halcon,就可用使用halcon算子处理了
    发表于 02-21 16:35