OpenCV实现傅里叶滤波(个人笔记)

Python下opencv使用笔记(十)(图像频域滤波与傅里叶变换) 前面曾经介绍过空间域滤波,空间域滤波就是用各种模板直接与图像进行卷积运算,实现对图像的处理,这种方法直接对图像空间操作,操作简单,所以也是空间域滤波。频域滤波说到底最终可能是和空间域滤波实现相同的功能,比如实现图像的轮廓提取,在空间域滤波中我们使用一个拉普拉斯模板就可以提取,而在频域内,我们使用一个高通滤波模板(因为轮廓在频域内属于高频信号),可以实现轮廓的提取,后面也会把拉普拉斯模板频域化,会发现 阅读详情
AI摘要

本文详细记录了利用OpenCV库在Python中实现傅里叶变换和滤波的过程,包括图像的傅里叶变换、高通滤波与低通滤波的应用,旨在帮助读者理解并掌握这一图像处理技术。

import cv2 as cv
import numpy as np
from timeit import default_timer


def fft(gray_img):
    dft = cv.dft(np.float32(img), flags=cv.DFT_COMPLEX_OUTPUT)
    dft_shift = dft  # np.fft.fftshift(dft)
    magnitude_spectrum = 20 * np.log(cv.magnitude(dft_shift[:, :, 0], dft_shift[:, :, 1]))
    cv.normalize(magnitude_spectrum, magnitude_spectrum, 0, 255, cv.NORM_MINMAX)
    magnitude_spectrum = np.uint8(magnitude_spectrum)
    cv.imshow("mag", magnitude_spectrum)
    # ret, thresh = cv.threshold(magnitude_spectrum, 0, 255, cv.THRESH_OTSU)
    # cv.imshow("thresh", thresh)

    rows, cols = gray_img.shape

    # 将低频的信号设置为0
    # 一般不使用矩阵窗口,而是使用高斯窗口
    mask = np.full((rows, cols), fill_value=0, dtype=np.uint8)
    ratio = 0.5
    cv.ellipse(mask, (cols // 2, rows // 2), (int(ratio * cols), int(ratio * rows)), 0, 0, 360, 1, -1)
    # crow, ccol = rows // 2, cols // 2
    # dr, dc = int(0.01 * rows), int(0.01 * cols)
    # mask[:, ccol - dc:ccol + dc] = 
基于OpenCv的图像傅里叶变换 傅里叶变换将原来难以处理的时域信号转换成了易于分析的频域信号,可以利用一些工具对这些频域信号进行处理、加工。最后还可以利用傅里叶反变换将这些频域信号转换成时域信号。 图像经过傅里叶变换后,大部分能力都分布于低频谱段,这对以后图像的压缩、传输都比较有利。 阅读详情

相关推荐

基于OpenCv的傅里叶变换和低通滤波

基于OpenCv的傅里叶变换及低通滤波,实现频域滤波。

《AI应用架构师必学:企业AI能力地图构建的高级技巧》

企业AI能力地图,简单来说,是一种可视化工具,它展示了企业在AI领域所具备的各种能力及其相互关系。就如同城市地图展示城市的街道、建筑和设施一样,AI能力地图呈现了企业在数据处理、模型开发、算法应用等多个方面的能力布局。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 818

矩阵束(Matrix Pencil)入门:从通信系统到控制理论,它为何是建模利器?

本文深入探讨矩阵束(Matrix Pencil)在通信系统与控制理论中的关键作用,揭示其作为复杂系统建模利器的独特价值。从MIMO系统的多径干扰分析到电力系统稳定性判据,矩阵束通过`A-λB`方程求解提供精准建模方案,显著提升5G通信和工业控制等领域的性能表现。

weixin_30134145的博客 358

Power Bi数据分析案例:在线零售平台销售数据分析

该数据集为,涵盖2023年1月至2024年3月,包含用户群体特征、购买行为、产品偏好以及参与度指标。用户维度:Customer_ID,Age,Gender,City产品维度:Product_Category,Unit_Price事实表:Order_ID,Quantity,Total_Amount,Discount_Amount,Rating,Delivery_Time在Power Query当中处理销售日期列,并新增年龄段、浏览页面分段列。

2301_79586168的博客 1276

深度强化学习:Actor-Critic、A2C、A3C

Actor-Critic算法是强化学习中常用的一种方法,policy-based,通过演员和评论员或者是策略网络和价值网络的结合进行学习

weixin_51995147的博客 1426

从PSDK到ROS节点:实战GPS数据发布与CMake配置

本文详细介绍了如何从大疆PSDK获取GPS数据并封装为ROS节点的实战过程,包括PSDK编译、GPS数据订阅、ROS节点实现及CMake配置优化。通过具体代码示例和调试技巧,帮助开发者快速实现无人机传感器数据与ROS系统的集成,提升开发效率。

weixin_30843605的博客 457

【SpringBoot 3.x 第51节】带你玩转 GraalVM Native Image:启动快到飞起,内存省到心疼,你还不试试?

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1301

15、分布式查询处理详解

本博文深入探讨了分布式环境下的查询处理与优化技术。从查询处理的基本概念出发,分析了在分布式系统中执行查询所面临的额外挑战,并通过实例比较了不同的执行策略。文章详细介绍了查询优化的组成要素,包括搜索空间、成本模型和搜索策略,同时涵盖了查询处理的多个层次以及数据本地化的核心方法。此外,还讨论了连接排序优化、分布式成本模型以及多种查询优化方法,如静态优化、动态优化和混合优化。最后,提出了自适应查询处理的概念,旨在提高分布式查询的灵活性和效率。通过综合应用这些技术,可以有效提升分布式数据库的查询性能,降低通信和计算

gan8painter的博客 71

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: OpenCV实现数据的旋转、尺度和背景增强(个人笔记)
下一篇: Pycharm中SSH解释器无法加载已经安装的Package
vector_Lu
博客等级 码龄9年 13粉丝 24原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值