halcon快速傅里叶变换

说明

低频特征是灰度变化不明显,例如图像整体轮廓,高频特征是图像灰度变化剧烈,如图像边缘和噪声。一个重要的经验结论:低频代表图像整体轮廓,高频代表了图像噪声,中频代表图像边缘、纹理等细节。
傅里叶变换公式如下:
在这里插入图片描述

关键算子

optimize_rft_speed( : : Width, Height, Mode : )

优化当前选择的FFT算法,halcon中有好多FFT算法,在不同的数据规模硬件下有多种不同的选择,调用该方法可自动评估出最合适的算法,显著提升FFT的速度。

rft_genericfft_generic

rft_generic(Image : ImageFFT : Direction, Norm, ResultType, Width)
fft_generic(Image : ImageFFT : Direction, Exponent, Norm, Mode, ResultType)
这两个算子的不同点:

1.简单理解,rft_generic算子只计算和存储了复数图像的左半部分(右边是共轭的),而fft_generic算子计算和存储的是复数图像,前者大大提升了运算速率;
2.fft_generic算子可以通过参数Mode设置原点的位置:如果设置的是’dc_edge’,那么原点在左上角(即左上角是低频成分);如果设置的是’dc_center’,那么就会将原点平移到中心位置(中心是低频成分,四角是高频)。fft_generic算子一般会设置为’dc_center’。对于rft_generic算子,因为没有设置项,所以默认原点位置为左上角。

相同点:

1.Direction,分别是’to_freq’ 和’from_freq’
2.Norm,‘none’, ‘sqrt’ and ‘n’,这里其实决定了傅里叶变换公式中前面的系数c,默认值:‘sqrt’(开根号,c=sqrt(MN),转到频域数值最小);也可设置为 ‘n’(图像宽图像高,c=M*N,频域数值中间),‘none’(不使用,c=1,此时频域数值最大)。当正向变换时,一般选择’sqrt’,反向变换时,一般选择’n’(halcon例程)
3.Exponent:对应公式中指数符号,前向变换用-1,一般搭配’to_freq’ 使用,后向变换用1,搭配’from_freq’。
4.ResultType,如果是’to_freq’,那么ResultType一般选择’complex’;如果是’from_freq’,ResultType一般选择’real’(小数图像,需自己按比例转换为灰度)。如果为’byte’,则有可能不准确,全白或全黑。

gen_gauss_filter( : ImageGauss : Sigma1, Sigma2, Phi, Norm, Mode, Width, Height : )

在频率域创建一个高斯滤波器。
Sigma1:主方向的sigma值,越小越平缓,范围越大
Sigma2:垂直主方向的sigma值,这里两个参数相当于高斯滤波中的x方向和y方向分别计算,原理如该公式在这里插入图片描述
传统卷积框如下(核大小为3),计算时复杂度为rowscolsksize*ksize。
在这里插入图片描述
而分开计算核如下只有一维:
在这里插入图片描述

这样先行计算,再列计算,效果是一样的(因为都要归一化,所有前面是有系数的,未分离的系数是1/16,分离的系数是1/4,此时对一个全1的区域进行卷积,两个结果都是1.)。这两个sigma可以是不同的,也就是说x方向和y方向可以不同的卷积计算。sigma越大,高斯图像越平缓,越矮,滤波效果越差。
Phi:在空间域中主轴的方向
Norm:是否归一化。“n”是不进行归一化,和后面的rft_generic参数Norm类似
Mode:“dc_center”, “dc_edge”, “rft”,dc_center是0频在中间(即低频在中间),dc_edge低频在四角,rft是半张图片,低频在左上和左下。
例如:

gen_gauss_filter (ImageGauss2, 2, 2, 0, 'none', 'rft', Width, Height)
* 注意左上角为1,周边逐渐递减

在这里插入图片描述

gen_gauss_filter (ImageGauss1, 10, 10, 0, 'none', 'rft', Width, Height)

在这里插入图片描述

convol_fft(ImageFFT, ImageFilter : ImageConvol : : )

进行卷积,实际是复数图像ImageFFT的像素乘以滤波器ImageFilter的相应像素,因此滤波器中黑色的部分对应到频率图中相应位置的数据被清除。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ps:色彩范围

Ps菜单:选择/色彩范围 Select/Color Range 色彩范围 Color Range是一个功能强大选择命令,不仅可以基于颜色进行选择,而且可以基于影调进行选择。不仅可以用来检测人脸选择肤色,也可用来选择超出印刷色域范围的区域。 在图层蒙版的…

Apex的addError()显示的消息中实现换行

直接用‘<br/>’是无效的&#xff0c;因为addError默认不转义HTML符号&#xff0c;如果需要转义&#xff0c;应该将第二个参数escape设置为false。不过即使设置了也只对classic页面生效&#xff0c;lightning页面还是无法转义。 官方文档&#xff1a; 参考资料&#xf…

稀土/铜催化剂电催化CO2制C2+或CH4

在电化学CO2还原反应&#xff08;CO2RR&#xff09;中&#xff0c;合理调控反应途径以生成所需产物是最重要的挑战之一。基于此&#xff0c;中国科学院化学研究所韩布兴院士和朱庆宫研究员等人报道了一系列稀土-铜混合相催化剂&#xff0c;通过调整催化剂的组成和结构&#xff…

Linux环境变量

Linux环境变量 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容讲解了环境变量&#xff0c;什么是环境变…

OpenCV检测圆(Python版本)

文章目录 示例代码示例结果调参 示例代码 import cv2 import numpy as np# 加载图像 image_path DistanceComparison/test_image/1.png image cv2.imread(image_path, cv2.IMREAD_COLOR)# 将图像转换为灰度 gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 使用高斯模糊消除…

Python采集数据代码示例

python import requests from bs4 import BeautifulSoup # 设置信息 proxy_host proxy_port proxy_url fhttp://{proxy_host}:{proxy_port} proxy {http: proxy_url, https: proxy_url} # 设置要爬取的网页链接 url # 使用requests发送GET请求&#xff0c;并设置代理…

[C/C++]数据结构 链表OJ题:移除链表元素

题目描述: 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 方法一: 从头开始遍历链表,当遇到相同元素则跳过该元素,指向下一节点 struct ListNode* removeElements(struct ListNode* head…

element tab组件,是否阻止切换

需求&#xff1a; 在tab切换之前判断当前页面是否有选择商品&#xff0c;如果有则在切换前提示用户保存 代码&#xff1a; <el-tabs v-model"tabActive" type"card" closable :before-leave"tabBefore" tab-remove"tabRemove">…

详解MES系统在质检管理中的多角度应用

MES系统的质检管理是指在制造过程中&#xff0c;利用MES系统的功能和工具来规划、执行和监控质检活动&#xff0c;以确保产品的质量符合预期标准和客户要求的管理过程。 1. 质检计划和标准制定&#xff1a; MES系统可以帮助企业制定质检计划&#xff0c;并定义质量标准和要求…

淘宝API商品详情接口丨关键词搜索接口丨用户评论接口丨淘宝销量接口

淘宝API商品详情接口&#xff0c;关键词搜索接口&#xff0c;用户评论接口&#xff0c;淘宝销量接口如下&#xff1a; 淘宝/天猫获得淘宝商品详情 API 返回值说明 item_get-获得淘宝商品详情 1.公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在…

Python 海龟绘图基础教学教案(十六)

Python 海龟绘图——第 32 题 题目&#xff1a;绘制下面的图形 解析&#xff1a; 循环绘制长方形里面一个小正方形 答案&#xff1a; import turtle as t for i in range(0,2): t.fd(140) t.lt(90) t.fd(80) t.lt(90) t.pu() t.fd(50) t.lt(90) t.fd(20) t.pd()for i…

Chatgpt人工智能对话源码系统分享 带完整搭建教程

ChatGPT的开发基于大规模预训练模型技术。预训练模型是一种在大量文本数据上进行训练的模型&#xff0c;可以学习到各种语言模式和知识。在ChatGPT中&#xff0c;预训练模型被用于学习如何生成文本&#xff0c;并且可以用于各种不同的任务&#xff0c;如对话生成、问答、摘要等…

不一样的编程方式 —— 协程(设计原理与汇编实现)

主要通过以下9个方面来了解协程的原理&#xff1a; 目录 1、为什么使用协程 1.3、协程的适用场景 2、协程的原语操作 3、协程的切换 3.1、汇编实现 4.协程的运行流程 5.协程的结构体定义(我们其实可以参照线程或者进程的状态来设计) 5.1、多状态集合设计 6.协程的调度…

正点原子嵌入式linux驱动开发——Linux 网络设备驱动

网络驱动是linux里面驱动三巨头之一&#xff0c;linux下的网络功能非常强大&#xff0c;嵌入式linux中也常常用到网络功能。前面已经讲过了字符设备驱动和块设备驱动&#xff0c;本章就来学习一下linux里面的网络设备驱动。 嵌入式网络简介 嵌入式下的网络硬件接口 本次笔记…

论文阅读—— CEASC(cvpr2023)

arxiv&#xff1a;https://arxiv.org/abs/2303.14488 github&#xff1a;https://github.com/Cuogeihong/CEASC 为了进一步减轻SC中的信息损失&#xff0c;使训练过程更加稳定&#xff0c;我们在训练过程中除了稀疏卷积之外&#xff0c;还保持了正常的密集卷积&#xff0c;生成…

GaussDB SQL基础语法-变量常量

目录 一、前言 二、GaussDB数据库中的常量和变量的基本概述及语法定义 1、变量定义 2、常量定义 3、其他&#xff08;%TYPE、%ROWTYPE属性&#xff09; 三、在GaussDB数据库中如何使用变量&常量&#xff08;示例&#xff09; 示例一&#xff0c;定义常量&变量&a…

【计算机网络】网络层IP协议

文章目录 1. IP协议介绍2. IP报头3. IP的分片和组装4. IP地址网段划分特殊的IP地址子网、局域网、网段的区别IP地址的数量限制 5. 公网IP和私有IP6. NAT技术7. 路由Route 1. IP协议介绍 IP协议&#xff08;Internet Protocol&#xff09;是一种最常用的网络层协议&#xff0c;…

echarts 类目轴设置xAxis.interval不起效果

情景&#xff1a;在xAxis.typecategory&#xff1b;设置xAxis.interval不起效果&#xff1b; 解决方案&#xff1a;通过设置xAxis.axisLabel.interval属性

3.JMeter高级使用-让你与众不同

目录 概述插件下载与安装插件下载配置插件 服务器硬件资源监控(精简版)配置服务端代理JMeter配置监控CPU 监控网络 JMeter下载结束 概述 今日目标&#xff1a; 插件下载与安装Basic Graphs 主要点 Average Response Time 平均响应时间Active Threads 活动线程数Successful/Fa…

CVE-2023-34040 Kafka 反序列化RCE

漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块&#xff0c;用于简化在 Spring 应用程序中集成 Apache Kafka 的过程&#xff0c;记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer&#xff0c;当用户将容…