傅里叶变换pytorch使用

参考视频:1 傅里叶变换原理_哔哩哔哩_bilibili

傅里叶变换是干嘛的:

傅里叶得到低频、高频信息,针对低频、高频处理能够实现不同的目的。
傅里叶过程是可逆的,图像经过傅里叶变换、逆傅里叶变换后,能够恢复到原始图像
在频域对图像进行处理,在频域的处理会反映在逆变换图像上

原理

 

傅里叶支持值域和频域互推

振幅

相位:开始的时间

numpy实现傅里叶变换

numpy.fft.fft2 傅里叶变换

得到频谱

numpy.fft.fftshift 将零频率分量移动到频谱中心

 20*np.log(np.abs(fshift)) 设置频谱的范围

比如图像是0-255的范围,这样就可以约束频谱到可视的范围

numpy逆傅里叶变换

numpy.fft.ifft2 逆傅里叶变换

返回一个复数数组(complex ndarray)

numpy.fft.ifftshift 逆移动

np.abs(逆傅里叶变换结果)

通过数组获得可以图像显示的值

滤波 

概念

空域→频域→空域

低频对应图像内变化缓慢的灰度分量。例如,在一幅大草原的图像中,低频对应着广袤的颜色趋于一致的草原。
高频对应图像内变化越来越快的灰度分量,是由灰度的尖锐过渡造成的。例如,在一幅大草原的图像中,其中狮子的边缘等信息,

接受(通过)或拒绝一定频率的分量

通过低频的滤波器成为低通滤波器

通过高频的滤波器成为高通滤波器

作用:

修改傅里叶变换以达到特殊目的,然后计算IDFT返回到图像域。
特殊目的:图像增强、图像去噪、边缘检测、特征提取、压缩、加密等。

高频

思路:调整高低频率主要是设置图像中的选取的位置,然后把不需要的地方换成黑色(0)

低频

OpenCV实现傅里叶变换

cv2.dft(原始图像,转换标识)

返回结果:

双通道:1.结果的实数部分,2.结果的虚数部分

原始图像要先转换成np.float32

转换标识:cv2.DFT_COMPLEX_OUTPUT输出复数阵列

cv2.magnitude(参数1,参数2)计算幅值

参数1∶浮点型X坐标值,也就是实部
参数2:   浮点型Y坐标值,也就是虚部

cv2.idft(原始数据) 逆傅里叶变换

返回结果:取决于原始数据的类型和大小

原始数据:实数或者复数均可

numpy.fft.ifftshift

ffshift函数的逆函数

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

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

相关文章

DevOps本地搭建笔记(个人开发适用)

需求和背景 win11 wsl2 armbian(玩客云矿渣),构建个人cicd流水线,提高迭代效率。 具体步骤 基础设施准备 硬件准备:一台笔记本,用于开发和构建部署,一台服务器,用于日常服务运行。 笔记本…

在 Android 上恢复已删除文件的 5 种简单方法

您可能会因为意外删除、未完成的 Android 更新、手机意外关机等原因而丢失 Android 上的重要数据。新技术的发展使许多手机功能或程序能够从内部恢复丢失的数据。 在 Android 上恢复已删除文件的 5 种简单方法 然而恢复成功率的不确定性也成为人们克服数据丢失困境的重要考虑因…

5G网络助力智慧文旅发展:实现旅游资源的优化配置与高效利用

目录 一、5G网络在智慧文旅中的关键作用 1、高速率传输提升数据处理能力 2、低时延助力实时决策与调度 3、大连接实现全面覆盖与精细化管理 二、5G网络助力实现旅游资源的优化配置 1、精准匹配游客需求与旅游资源 2、促进旅游资源的跨区域合作与共享 三、5G网络助力实现…

【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现

🌞前言 这里我们会实现一个项目:在linux操作系统下基于OpenCV和Socket的人脸识别系统。 目录 🌞前言 🌞一、项目介绍 🌞二、项目分工 🌞三、项目难题 🌞四、实现细节 🌼4.1 关…

[Spring] IoC 控制反转和DI依赖注入和Spring中的实现以及常见面试题

目录 1. 什么是Spring 2.什么是IoC容器 3.通过实例来深入了解IoC容器的作用 3.1造一量可以定义车辆轮胎尺寸的车出现的问题 3.2解决方法 3.3IoC优势 4.DI介绍 5.Spring中的IoC和DI的实现 5.1.存对象 5.1.2 类注解 5.1.3 方法注解 5.2取对像 (依赖注入) 5.2.1.属性…

PromptBreeder---针对特定领域演化和发展提示词的方法

原文地址:promptbreeder-evolves-adapts-prompts-for-a-given-domain 论文地址:https://arxiv.org/pdf/2309.16797.pdf 2023 年 10 月 6 日 提示方法分为两大类 硬提示是由人工精心设计的文本提示,包含离散的输入令牌;其缺点…

【探索程序员职业赛道:挑战与机遇】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

在DeepLn环境中安装VLLM与ChatGLM3

DeepLn | 智慧算力触手可及是一个挺便宜的算力租用平台,里面有大量的显卡可以租用。唯一美中不足的是,提供的pytorch版本低,只支持到2.01,为了匹配vllm,需要手动安装指定版本的pytorch。 vllm介绍 总体而言&#xff0…

报名开启丨掘金海外,探寻泛娱乐社交APP出海新风口

随着国内泛娱乐行业用户规模趋于见顶,泛娱乐社交APP转向出海是必然趋势。 根据行业数据显示,有超过35%的国内实时社交企业已启动或者正在规划出海,而其中出海商户的音视频流量增长均超过了100%。尤其是在东南亚、中东、拉美等新兴…

(每日持续更新)jdk api之SequenceInputStream基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿&…

【深入理解LRU Cache】:缓存算法的经典之作

目录 一、什么是LRU Cache? 二、LRU Cache的实现 1.JDK中类似LRUCahe的数据结构LinkedHashMap 2.自己实现双向链表 三、LRU Cache的OJ 一、什么是LRU Cache? LRU Cache(Least Recently Used的缩写,即最近最少使用&#xff0…

matlab阶段学习笔记小节2

syms定义符号变量 求极限 第二题 第三题 limit(y,n,inf);求的的函数y关于自变量n在无穷处(inf)的极限 exp(2)即指数为2,底为e,也就是e^2 求导数 第一题 log(x)默认是以e为底的指数函数,也就是ln(x). 使用diff(f)对函数进行求…