当前位置: 首页 > news >正文

Halcon机器视觉15种缺陷检测案例_2不均匀表面刮伤检测

2: 不均匀表面刮伤检测

思路

        1、获取图像

        2、分割图像

        3、处理区域 

        4、获取大,小缺陷

效果

原图

代码

*02 不均匀表面刮伤检测
dev_update_off ()
dev_close_window ()*****************第一步 获取图像*******************
read_image (Image, '2.不均匀表面刮伤检测')
get_image_size (Image, Width, Height)
*打开图像窗口
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
*设置区域的填充方式
dev_set_draw ('margin')
*设置线的宽度
dev_set_line_width (4)
*显示图像
dev_display (Image)**************第二步 分割图像**************
*均值滤波,滤波核大小为7*7(重点)
mean_image (Image, ImageMean, 30, 30)
*局部阈值进行分割(重点)
dyn_threshold (Image, ImageMean, DarkPixels, 5, 'dark')
*连通
connection (DarkPixels, ConnectedRegions)
*设置输出对象的显示色的数目
dev_set_colored (12)
dev_display(Image)
dev_display(ConnectedRegions)**************第三步 处理区域**************
*根据面积选择区域
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 50, 99999)
dev_display(Image)
dev_display(SelectedRegions)
*将选择区域合并
union1 (SelectedRegions, RegionUnion)
*对合并区域进行膨胀处理,其结构元素为圆形,半径3.5
dilation_circle (RegionUnion, RegionDilation, 3.5)
dev_display(Image)
dev_display(RegionDilation)
*对膨胀后的区域进行求骨架
skeleton (RegionDilation, Skeleton)
*对获取的骨架区域进行连通处理
connection (Skeleton, Errors)
*设置输出对象的显示色的数目
dev_set_colored (12)
dev_display(Image)
dev_display(Errors)**************第四步 获取大,小缺陷******************************************
*过滤出大缺陷
select_shape (Errors, ScratChes, 'area', 'and', 100, 99999)
*过滤出小缺陷
select_shape (Errors, Dots, 'area', 'and', 1, 99)
dev_display(Image)
dev_set_color('red')
dev_display(ScratChes)
dev_set_color('blue')
dev_display(Dots)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • VS编译和使用modbus库
  • Typescript 的联合类型和交叉类型
  • 【C++语言】正则表达式
  • 主机安全-进程、命令攻击与检测
  • 哪些事件会导致浏览器窗口宽高变化
  • 使用jsencrypt在web前端对字符串进行Ras加密
  • MySQL 日志深度解析:从查询执行到性能优化
  • 从零开始实现大语言模型(五):缩放点积注意力机制
  • idea启动ssm项目详细教程
  • llama-recipes
  • YOLO v8进行目标检测的遇到的bug小结
  • 澳门建筑插画:成都亚恒丰创教育科技有限公司
  • 【操作系统】进程管理——死锁(个人笔记)
  • IP 地址与 CDN 性能优化
  • java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Int
  •  D - 粉碎叛乱F - 其他起义
  • ECMAScript6(0):ES6简明参考手册
  • ES6系统学习----从Apollo Client看解构赋值
  • Git的一些常用操作
  • JavaScript的使用你知道几种?(上)
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • PHP的Ev教程三(Periodic watcher)
  • Puppeteer:浏览器控制器
  • react 代码优化(一) ——事件处理
  • SOFAMosn配置模型
  • Vim Clutch | 面向脚踏板编程……
  • Webpack 4 学习01(基础配置)
  • 反思总结然后整装待发
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 经典排序算法及其 Java 实现
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 详解移动APP与web APP的区别
  • ionic入门之数据绑定显示-1
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • #pragma预处理命令
  • #Z2294. 打印树的直径
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (2)MFC+openGL单文档框架glFrame
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (pytorch进阶之路)扩散概率模型
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)计算机毕业设计大学生兼职系统
  • (含笔试题)深度解析数据在内存中的存储
  • (南京观海微电子)——COF介绍
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十六)视图变换 正交投影 透视投影
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .chm格式文件如何阅读
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET 简介:跨平台、开源、高性能的开发平台