提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、前言
  • 二、核心处理流程
  • 总结

一 、前言

本篇文章展示使用傅里叶变换检测模糊图像内的mura型缺陷

原图

二、具体步骤

1.图像预处理

读入图像,并做三通道图像分割处理:

dev_close_window ()
dev_update_off ()
Path := 'lcd/mura_defects_blur_'
read_image (Image, Path + '01')
get_image_size (Image, Width, Height)
dev_open_window_fit_size (0, 0, Width, Height, 640, 480, WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (3)
dev_set_color ('red')
ScaleFactor := 0.4
calculate_lines_gauss_parameters (17, [25,3], Sigma, Low, High)
for f := 1 to 3 by 1read_image (Image, Path + f$'.2i')decompose3 (Image, R, G, B)

2.图像处理核心

本部分内容包含主要图像的方法:

1- 使用高斯滤波器进行图像rft变换,获取图像的背景亮度区域

使用sigma=100的高滤波核获取的背景亮度图像

2- 图像差分 原图与背景图像做差,进行缺陷特征增强

差分图像

3- 图像降采样 进一步凸显缺陷特征提高处理速度

Factor0.4的降采样图像
    rft_generic (B, ImageFFT, 'to_freq', 'none', 'complex', Width)gen_gauss_filter (ImageGauss, 100, 100, 0, 'n', 'rft', Width, Height)// 高斯滤波核convol_fft (ImageFFT, ImageGauss, ImageConvol)rft_generic (ImageConvol, ImageFFT1, 'from_freq', 'none', 'byte', Width)sub_image (B, ImageFFT1, ImageSub, 2, 100)//去除背景增强缺陷* perform the actual inspectionzoom_image_factor (ImageSub, ImageZoomed, ScaleFactor, ScaleFactor, 'constant')

4-为了避免图像边缘区域的影响 代码做了区域内缩,然后使用Line_gauss查找 区域图像内的黑色区域

    get_domain (ImageZoomed, Domain)erosion_rectangle1 (Domain, RegionErosion, 7, 7) // 区域缩减reduce_domain (ImageZoomed, RegionErosion, ImageReduced)lines_gauss (ImageReduced, Lines, Sigma, Low, High, 'dark', 'true', 'gaussian', 'true') 

处理结果

觉得代码的流程应该是没用完成,没有最后的缺陷筛选部分,一些较小的黑点也被当成了缺陷。


总结

这个例子基本上和之前的一个Mura检测采用了相同的图像缺陷增强的流程,只是在最后分割缺陷的方式上采用了不同的方式,Line_gauss的方式适合处理线型的mura缺陷,而块团状的mura缺陷还是用原始的分割筛选方式更佳。

Halcon实例 detect_mura_defects_blur相关推荐

  1. Halcon实例转OpenCV之焊点检测

    Halcon例程中有一个焊点检测例程ball.hdev,大家可以在例程中搜索查看,如下是实例使用的测试图和运行结果图: 测试图像: 运行结果图: 实现的大致步骤: ① 二值化后获取Board区域,设置 ...

  2. Halcon实例分析——autobahn.hdev快速检测道路标志

    这是运行代码的结果,下面我们每条代码过一遍,下面的代码路径为打开halcon,浏览实例程序,方法中的Blob分析, 有些重点代码会详细讲解, * autobahn.hdev: Fast detecti ...

  3. Halcon实例分析——check_blister.hdev

    前言 例程运行结果如下 实例路径如下 注释翻译如下: *这个例子主要演示了医药行业的应用,主要是检测自动填充胶囊是否正确.第一张图片主要是作为参考模型,用于定位胶囊的位置.使用blob分析法去判断整个 ...

  4. 机器视觉Halcon——3. Halcon实例clip回形针方向识别

    打开HDevelop -> 浏览HDevelop实例程序 -> 查找:clip -> 旋转clip.hdev -> 打开 clip即回形针,原图片clip.png可在C:\Us ...

  5. matlab创建圆点标定板,(halcon实例)一种蜂窝圆点标定板校准CCD并测量的例子

    这个不是hlacon的标准标定板. 勇哥想知道这个+-0.009mm是怎么整出来了.这个例子值得研究一下. ImgPath := '3d_machine_vision/calib/' dev_clos ...

  6. Halcon学习——detect_mura_defects_blur.hdev

    rft_generic gen_gauss_filter:比sigma大的?sigma大去掉高频 convol_fft rft_generic sub_image

  7. halcon 圆环类缺陷检测的一种方法(极坐标变换法)

    目录 简介 极坐标变换 定义 原理 Halcon中的极坐标变换 1.polar_trans_image_ext算子用法与参数剖析 2.polar_trans_region_inv算子用法与参数剖析 圆 ...

  8. HALCON学习之旅(七)

    HALCON学习之旅(七) 文章目录 HALCON学习之旅(七) 1.MFC与Halcon混合编程 2.C#与Halcon混合编程 3.Halcon测量助手使用 4.Halcon实例进阶一(拟合区域椭 ...

  9. 多个相机内外参标定详解[halcon]

    本次讲述一个halcon实例,如何对多个相机参数进行标定. 相机的标定流程一般由以下几个部分: 相机参数的初始化->读取标定文件->读取标定板图像->进行标定->标定结果. 1 ...

最新文章

  1. 我们究竟还要学习哪些Android知识?面试真题解析
  2. 周五话营销 | 数据分析强势解决营销人三大痛点
  3. 在.Net framework中动态加载Assembly的loadFromRemoteSources配置
  4. python面向对象继承_四. python面向对象(继承)
  5. c语言中行号大小调整,给自己的程序加上行号
  6. oracle的索引使用方法,在OracleE数据库的字段上建立索引的方法
  7. C++中string、char[]、char*之间的转换
  8. 带头结点的单链表删除
  9. SQL Server应用程序中的高级SQL注入
  10. 滴滴怒怼美团;阿里麻吉宝刷屏;B站、爱奇艺上市 | CSDN 极客头条
  11. C++ unordered_map 在key为string类型和char*类型时测试时间性能差异
  12. SQL入门:第一章 建立自己的数据库
  13. A Game with Traps—— 二分
  14. 微信小程序 下拉刷新 上拉触底分页
  15. 功能:批量查询和导出工艺路线
  16. 【毕业设计】单片机与NBIOT通信模块 - 单片机 物联网 stm32
  17. Android第三方授权分享在新浪微博授权提示:文件不存在 C8998 的解决方法
  18. Android开发过程中遇到的异常
  19. 360秒抓取收录批量提交程序
  20. shell C语言编程

热门文章

  1. 天线巴伦制作和原理_传输线巴伦的原理设计、制作及测试
  2. 计算机二级excel降水量分值,计算机二级Excel条件格式的8大用法,太全了!
  3. 显著性检测大牛或实验室的主页
  4. 联想M7400打印机加粉墨了还是显示没有粉墨
  5. Arduino 制作蓝牙开关
  6. Redis-布隆过滤器(Bloom Filter)详解
  7. 计算机考试中英文打字题,最新计算机信息技术(五笔及中英文打字测试试题合集...
  8. 【困惑】为何他周末不加班
  9. JavaScript下载文件下载 [Blob]
  10. 微信Token验证的——C#