图像快速傅里叶变换的工业应用案例简介:图像自相关,背景纹理去除,旋转矫正,划痕检测

快速傅里叶变换是非常重要的数学分析工具,同时也是一种非常重要的信号处理方法。

下面借助Halcon商业图像处理库,介绍些工业应用案例,我们可以通过案例理解图像快速傅里叶变换的一些应用场景。

案例1:图像自相关性确定芯片间距

下图示意的晶圆图像中有芯片周期性的排列,而自相关函数计算纹理周期具有很好的效果。

图片

wafer

为提升计算效率,我们可以应用快速傅里叶变换将晶圆图像转换到频域中去计算自相关图像。

图片

频域方法计算晶圆图像的自相关图像

* 代码片段选自Halcon例程文件: determine_die_pitch_fft_correlation.hdevrft_generic (Wafer, ImageFFT, 'to_freq', 'n', 'complex', Width)correlation_fft (ImageFFT, ImageFFT, ImageCorrelation)rft_generic (ImageCorrelation, ImageFFTInv, 'from_freq', 'n', 'real', Width)

图片

wafer image auto-correlation

自相关图像上  点的灰度值是将图像水平移动  、垂直移动  后与原始图像做相关运算得到的相关值。

上图示意的是自相关图像计算结果中,自相关图像原点的灰度值很高,因为这点代表没有移动的图像与其自身的相关性。如果原图像上有周期性宽度  和高度  的矩形结构,在自相关图像的  位置上也会得到高的相关值。通过在相关图像上找到与原点最近的局部极大值,直接得到周期结构的尺寸。

应用 local_max_sub_pix 图像局部极大值的亚像素精确检测函数,提取自相关图像中的局部极值点。亚像素精度局部极大值可以通过如下代码得到:

  local_max_sub_pix (ImageFFTInv, 'gauss', 3, 0.0001, Row, Column)

确定芯片周期间距后,可以进一步应用基于形状的模板匹配准确的定位芯片位置,并从晶圆图片中分割出每个芯片。

案例2:去除背景纹理

如何通过频域过滤将前景信息从干扰的背景纹理中分离出来?

首先,对图像进行傅里叶变换,以获得其频谱。然后,我们检测频谱中与干扰性背景纹理相对应的频率峰值。之后,建立一个消除这些频率的滤波器,并将其应用于频谱。通过对过滤后的频谱进行反傅立叶变换,我们得到一个过滤后的图像,其中的干扰性背景纹理将被去除。

图片

remove_texture_fft

背景纹理在频谱图中对应的是高频信号,频谱图像中间区域为低频信号。

图片

频谱图

我们通过阈值分割提取信号显著的低频区域。

图片

低频区域

以低频区域的以两倍的频率构建高频波段ROI区域,在高频波段ROI区域中,阈值分割提取显著的高频分量,如下图中红色圈注为高频分量区域。

图片

高频分量区域

将频谱图中的高频分量区域置为0,以此过滤高频分量。

图片

将过滤后的频谱图反傅里叶变换即可得到去除背景纹理的图像。

案例3:对栅格图像进行旋转校正

快速傅里叶变换将图像从时域转换到频域,定义0度栅格图像,并以0度栅格为基础创建基准信息。下图为0度栅格图像

图片

0°栅格图像

统计基准图像的边缘梯度方向

使用边缘检测的算子(如Roberts,Sobel,Scharr等)来计算图像中的水平、垂直和对角方向的梯度。得到水平和垂直方向的一阶导数值,由此便可以确定像素点的梯度的大小和方向。Halcon中提供了edges_image算子计算边缘梯度方向图,该算子输出的梯度方向图的灰度值范围为[0,179],即0°~179°.

图片

边缘梯度方向图

以0°~179°范围统计梯度方向直方图。即每个角度在图像中的像素总数。灰度边缘方向统计直方图如下图所示

图片

边缘梯度方向统计直方图

对于栅格图像,当图像旋转时,其梯度方向直方图也会同步水平平移,因此计算与标准梯度直方图最佳相关性可以得到相对的旋转角度,频谱图上计算相关性图基本原理是待检图直方图和标准图直方图的FFT 频域乘积再转换回时域,其相当于时域卷积结果。

确定要处理的图像的旋转角度

  • 计算待处理图像的边缘方向统计直方图(该直方图用图像表示,其行列为1*180)。待处理图像的边缘方向直方图与基准图像的边缘方向直方图如下图所示

    图片

  • 计算旋转物体边缘方向统计直方图的FFT图像与基准边缘方向统计直方图FFT图像

  • 找到目标和参考FFT之间的最佳相关性,该最佳相关性对应于两个图像之间的相对角度。最佳相关性需要在相关性图的局部极值中筛选。

案例4:检测划痕缺陷

通过频域滤波检测非均匀照明表面中的缺陷(划痕)。待处理图像如下图所示:

图片

划痕图像

  • 首先,反转图像

图片

划痕图像反转

  • 创建合适的带通滤波器。然后,在频域对输入图像进行傅里叶变换和滤波,从而增强高频信息。

* Enhance the scratches by filtering in the frequency domain
gen_sin_bandpass (ImageBandpass, 0.4, 'none', 'rft', Width, Height)
rft_generic (ImageInverted, ImageFFT, 'to_freq', 'none', 'complex', Width)
convol_fft (ImageFFT, ImageBandpass, ImageConvol)
rft_generic (ImageConvol, Lines, 'from_freq', 'n', 'byte', Width)

gen_sin_bandpass 产生旋转不变带通滤波器,其响应为频域中的正弦函数,频域带通滤波器图像如下图

图片

convol_fft 在频域中用正弦带通滤波器对待检测图的FFT图像进行卷积。从而滤除低频,增强高频信息。最后,将其转换回空间域,并对增强后的缺陷进行形态学后处理。*rft_generic (ImageInverted, ImageFFT, 'to_freq', 'none', 'complex', Width)*计算待检测图的FFT图像rft_generic (ImageConvol, Lines, 'from_freq', 'n', 'byte', Width) 将频域卷积图像变换回时域。滤波后且增强高频信息的图像如下所示:

图片

  • 阈值分割、形态学处理及缺陷筛选

图片

图片

图片

形态学分析与划痕筛选

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/24698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

体育赛事管理系统的设计与实现(源码+论文)_kaic

摘要 许多年以前,人们在对数据进行统计和记录时候,使用的是纸和笔,对于大量数据的记录很不方便,使用的人力物力也很庞大,到了现在,人们对纸和笔的依赖慢慢降低,在如今的互联网时代,…

python爬虫1:基础知识

python爬虫1:基础知识 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 目录结构 文章目录 python爬虫1:基础知识1. 基础认知1.1 什么是爬虫&…

3.CNI网络

文章目录 CNI网络FlannelUDP模式VXLAN模式部署flannel CalicoCalico模式Calico部署 flannel 和 calico 区别 CNI网络 K8S 中 Pod 网络通信: Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一个网络命…

Redis内网主从节点搭建

Redis内网主从节点搭建 1、文件上传2、服务安装3、服务启动4、配置主从复制 1、文件上传 内网环境手动上传gcc-c、redis.tar文件 2、服务安装 # 解压 unzip gcc-c.zip unzip gcc_rpm.zip tar -zxvf redis-6.2.13.tar.gz# 安装 cd gcc_rpm/ rpm -ivh *.rpm --nodeps --force…

【HDFS】每天一个RPC系列----complete(二):客户端侧

上图给出了最终会调用到complete RPC的客户端侧方法链路(除去Router那条线了)。 org.apache.hadoop.hdfs.DFSOutputStream#completeFile(org.apache.hadoop.hdfs.protocol.ExtendedBlock): 下面这个方法在complete rpc返回true之前,会进行重试,直到超过最大重试次数抛异…

ChatGPT下架官方检测工具,承认无法鉴别AI内容

去年底,OpenAI 推出的 ChatGPT ,带来了生成式人工智能涌现的热潮。它不仅能够协助完成撰写邮件、视频脚本、文案、翻译、代码等任务,还能通过学习和理解人类的语言来进行对话,并根据聊天的上下文进行互动。 但随之而来的争议也让人…

Service not registered 异常导致手机重启分析

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、Service not registered 异常导致手机重启二、Service not registered 解决方案 一、Service not registered 异常导致手机重启 1.重启 的部分Log如…

ruby调试

如果下载 ruby-debug-ide gem install ruby-debug-ide vscode 下载 ruby扩展 1, ruby 2,修改launch.json

Zebec 创始人 Sam 对话社区,“Zebec 生态发展”主题 AMA 回顾总结

近日,Zebec Protocol 创始人 Sam 作为嘉宾,与社区进行了以“Zebec 生态发展”为主题的 AMA 对话。Sam 在线上访谈上对 Zebec 路线图、Zebec 质押、NautChain通证进行了解读,并对 Zebec 的进展、生态建设的愿景进行了展望。本文将对本次 AMA 进…

Rocky(centos) jar 注册成服务,能开机自启动

概述 涉及:1)sh 无法直接运行java命令,可以软连,此处是直接路径 2)sh脚本报一堆空格换行错误:需将转成unix标准格式; #切换到上传的脚本路径 dos2unix 脚本文件名.sh 2)SELINUX …

W6100-EVB-PICO做DNS Client进行域名解析(四)

前言 在上一章节中我们用W6100-EVB-PICO通过dhcp获取ip地址(网关,子网掩码,dns服务器)等信息,给我们的开发板配置网络信息,成功的接入网络中,那么本章将教大家如何让我们的开发板进行DNS域名解…

【C# 基础精讲】C# 数据类型概述

在C#中,数据类型可以分为以下三大类:值类型、引用类型和指针类型。每种类型都具有不同的特点和适用场景,了解这些类型对于编写高效和稳健的C#程序至关重要。下面将依次介绍这三大类数据类型,并列出C#中常见的每种类型。 值类型 值…

【Linux命令详解 | cd命令】Linux系统中用于更改当前工作目录的命令

文章标题 简介一,参数列表二,使用介绍1. 使用cd命令切换到特定目录2. 使用cd命令与路径相关的特殊字符3. 使用cd命令切换到包含空格的目录4. 使用cd命令切换到前一个和后一个目录5. 使用cd命令切换到用户的主目录6. 使用cd命令与绝对路径和相对路径 总结…

宁波银行最新内推码 MK4913

宁波银行最新内推码 MK4913 内推码: MK4913 内推二维码 : 网申路径: 网页端:登录宁波银行招聘官网: https://zhaopin.nbcb.com.cn 选择【校园招聘】-【招聘岗位】手机端:关注【宁波银行招聘】公众号&a…

【物理】带电粒子在磁场和电场中移动的 3D 轨迹研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

无涯教程-Perl - chdir函数

描述 此功能将当前工作目录更改为EXPR,如果未指定,则更改为用户的主目录。此函数调用等效于Unix命令 cd EXPR 。 语法 以下是此函数的简单语法- chdir EXPRchdir返回值 如果失败,此函数返回0,如果成功,则返回1。 例 以下是显示其基本用法的示例代码,假设您在/user/home/…

助力618-Y的混沌实践之路 | 京东云技术团队

一、写在前面 1、混沌是什么? 混沌工程(Chaos Engineering)的概念由 Netflix 在 2010 年提出,通过主动向系统中引入异常状态,并根据系统在各种压力下的行为表现确定优化策略,是保障系统稳定性的新型手段。…

CS 144 Lab Six -- building an IP router

CS 144 Lab Six -- building an IP router 引言路由器的实现测试 对应课程视频: 【计算机网络】 斯坦福大学CS144课程 Lab Six 对应的PDF: Lab Checkpoint 5: building an IP router 引言 在本实验中,你将在现有的NetworkInterface基础上实现一个IP路由器&#xf…

Linux知识点 -- 进程间通信(二)

Linux知识点 – 进程间通信(二) 文章目录 Linux知识点 -- 进程间通信(二)一、System V共享内存1.原理2.申请共享内存3.System V共享内存的使用4.为共享内存添加访问控制 二、信号量(概念理解)1.概念2.信号量…

OpenCV之信用卡识别实战

文章目录 代码视频讲解模板匹配文件主程序(ocr_template_match.py)myutils.py 代码 链接: https://pan.baidu.com/s/1KjdiqkyYGfHk97wwgF-j3g?pwdhhkf 提取码: hhkf 视频讲解 链接: https://pan.baidu.com/s/1PZ6w5NcSOuKusBTNa3Ng2g?pwd79wr 提取码: 79wr 模板匹配文件 …