频域是对图像进行处理的有效的手段,对产品的缺陷检测,可以通过对图像频域的处理实现,

这其中的核心是频域滤波器的设计。

先看几个相关的算子

1.rft_generic

作用:对实数图像进行傅里叶变换或傅里叶反变换,由时域图像得到频域图像或由频域图像得到时域图像

看一下几个重点的参数

1.direction

这个有 'from_freq', 'to_freq'这两种可选 ,分别表示由时域图像得到频域图像及由频域图像得到时域图像

2.norm 这个我也没搞明白 懂了再补充吧

3.ResultType

这个用于设置结果类型,需要注意的是 当转换到频域时,我们选'complex' ,转换到时域时,我们选

'byte'

2.gen_gauss_filter

作用:产生一个频域高斯滤波器,他与图像的频域进行卷积,就可以起到滤波的效果

其中的norm要选为'n',这是我所不理解的

3.convol_fft

作用:进行频域的卷积

4.


*设置区域的填充方式
dev_set_draw ('margin')*利用频域对缺陷图像进行检测
read_image (Image, '//Mac/Home/Downloads/7.Halcon缺陷检测视频教程/Halcon缺陷检测视频教程配套资料/背景网格产品刮伤缺陷检测@/lcd/mura_defects_blur_01.png')
get_image_size (Image, Width, Height)
*将图像抓换为灰度
rgb1_to_gray (Image, GrayImage)
*拆分图片 将图片拆分为3通道
decompose3 (Image, R, G, B)
*对灰度图像进行颜色反转
invert_image (GrayImage, ImageInvert)
*进行实数傅里叶变换 变换后图像的大小改变
rft_generic (B, ImageFFT, 'to_freq', 'none', 'complex', Width)
get_image_size (ImageFFT, Width1, Height1)
*创建一个高斯滤波核,用以与进行傅里叶变换后的图像进行卷积
gen_gauss_filter(ImageGauss, 10, 10, 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)
*ImageSub =( ImageMinuend - ImageSubtrahend ) *Mult + Add
*之所以乘以Mult是要拉大两幅图像相减后的对比度,加上一个Add是为了增加相减后的图像的整体亮度。*设置提取线条的阈值
calculate_lines_gauss_parameters (40, [25,3], Sigma, Low, High)
*根据高斯核选出线
lines_gauss (ImageSub, Lines, Sigma, Low, High, 'dark', 'true', 'gaussian', 'true')

即可得到有缺陷的区域

Halcon 频域缺陷检测相关推荐

  1. halcon视觉缺陷检测系列(1)常用的6种方法

    一.缺陷检测综述 缺陷检测是视觉需求中难度最大一类需求,主要是其稳定性和精度的保证.首先常见缺陷:凹凸.污点瑕疵.划痕.裂缝.探伤等.常用的手法有六大金刚(在halcon中的ocv和印刷检测是针对印刷 ...

  2. Halcon 网格缺陷检测

    网格缺陷检测 图片资源 链接:https://pan.baidu.com/s/1Higp9T94J1KtlxCyYZrW1Q 提取码:z2wn *************1.读取图片与基本设置**** ...

  3. 图像分析,使用Halcon进行缺陷检测

    1.首先简单介绍一下Halcon开发: HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境.它节约了产品成本,缩短了软件开发周期--HALCON灵 ...

  4. HALCON【缺陷检测】

    1.缺陷分类: 边缘凹凸.毛刺 内部污点.内部凹凸.特定空洞.破损 划痕(一般用低角度环形光和同轴光源) 凸点一般用带角度的光源斜着打,背景打亮,凸点打暗. 凹点一般用平行光从上往下打,背景打亮,凹点 ...

  5. halcon python缺陷检测_halcon边缘提取缺陷检测的思路

    一.边缘提取 1 .设置 ROI 兴趣区域 2 .快速二值化,并连接相邻区域.这样做的目的是进一步减少目标区域,通过二值化将目 标区域大概轮廓提取出来 3 .提取最接近目标区域的轮廓 . 常用函数有 ...

  6. halcon python缺陷检测_Halcon学习笔记之缺陷检测(一)

    *surface_scratch.hdev:extraction of surface scratches via local thresholding and morphological post- ...

  7. Halcon:PCB缺陷检测

    图像处理结果: 主要思想: *Blob+差分+特征 Blob:使用灰度值的开运算图像A,使用灰度值的闭运算图像B 差分:A-75>B,选择其中暗的,A+75<B,选择其中亮的 特征:可以再 ...

  8. [Halcon图像] 缺陷检测的一些思路、常规检测算法

  9. halcon缺陷检测——频域

    缺陷检测--频域和空间域 1. 理解傅里叶变换 2. 读懂频谱图 3. 使用频域处理图像的案例 3.1 脏污检测 3.2 检测表面微小凸起 3.3 检测磨砂表面的缺陷 4. 资源下载 1. 理解傅里叶 ...

最新文章

  1. StringUtils的isBlank与isEmply
  2. [论文学习]Manifold Mixup和PatchUp的代码重新实现(实现即插即用且速度更快)
  3. mysql 创建用户权限_10.创建 MySQL 用户及赋予用户权限
  4. LeetCode MySQL 1097. 游戏玩法分析 V
  5. android richtext显示html,【报Bug】关于rich-text显示html 的问题
  6. directui 3d界面引擎_美术设计师浅谈AR/VR中3D建模设计的工具、挑战与区别
  7. AMD官宣350亿美元收购赛灵思 赛灵思大涨8.56%
  8. 宝塔linux修改默认编码,宝塔linux面板防护CC设置(示例代码)
  9. 软考 2015年下半年卷 错题知识点记录
  10. Java异步多线程编程探索之CompletableFuture
  11. Luogu1373 小a和uim之大逃离
  12. Wazuh的rootkit扫描性能优化
  13. 2021年认证杯SPSSPRO杯数学建模D题(第一阶段)停车的策略全过程文档及程序
  14. windows 控制台cmd乱码(及永久修改编码)的解决办法
  15. 常见字符编码详解ANSI,UTF-8,UCS,GBK,GB2312,BIG5
  16. Android Beam 文件传输失败分析与解决
  17. led点阵c语言程序,51单片机驱动LED点阵扫描显示C语言程序
  18. 使用Persimmon UI Builder 开发的一些技巧和注意事项 -- (RT-thread 柿饼UI)
  19. 测试双方距离的软件,有没有可以测量距离的app
  20. 制作ubuntu18.04启动盘 + 安装ubuntu18.04

热门文章

  1. 多功能人证合一比对系统
  2. 2022年新一批获得能力评估CS认证证书的企业名单
  3. winscp内网mysql_WinSCP和PuTTY在刷openwrt固件的使用教程
  4. sqlmap用法精简版
  5. 第一章:Reac入门 与 第二章:React面向组件编程
  6. js中 let和var的区别
  7. eWebEditor漏洞分析
  8. Flash实例“蝶恋花”制作过程深入剖析
  9. 2021论文_汽车无钥匙进入系统中的抗干扰-重放攻击的防御机制
  10. Redis是什么 , 为什么要使用redis redis做缓存优势