opencv4 傅里叶变换

这篇具有很好参考价值的文章主要介绍了opencv4 傅里叶变换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

傅里叶变换

① 高频:变化剧烈的灰度分量,例如边界礁石。

② 低频:变化缓慢的灰度分量,例如一片大海。

③ 高通滤波器:只保留高频,会使得图像细节增强。高频边界锐化了,增强了,细节更明显了。

④ 低通滤波器:只保留低频,会使得图像模糊。低频信息保留下来了,高频信息没了,图像边界会变得模糊了。

① opencv 中主要就是 cv2.dft() 执行傅里叶变换到频域中 和 cv2.idft() 执行逆傅里叶变换,输入图像需要先转换成 np.float32 格式。

② 得到的结果中频率为 0 的部分会在左上角,通常要转换到中心位置,可以通过 shift 变换来实现。

③ cv2.dft() 返回的结果是双通道的 ( 实部,虚部 ),通常还需要转换成图像格式才能展示(0,255)像素值。

ffshit

numpy.fft.fftshift() 函数是用来将一维或多维的数组进行循环移位(cyclic shift)操作,从而使得数据集的原点(中心点)从数组的开始位置移动到中间位置,便于进行傅里叶变换等操作。

具体来说,对于一维的实数或复数序列,numpy.fft.fftshift() 函数将其进行循环移位操作,将左半边的数据移到了右边,将右半边的数据移到了左边。而对于多维的数组,numpy.fft.fftshift() 函数则将其进行多维循环移位操作,保证每个维度上的数据都被移动到了中心位置。

举个例子,假设有一个长度为 N 的一维实数序列 x,其中 N 是偶数。那么按照 numpy.fft.fftshift() 的规则,可以将序列 x 划分为两部分:左半部分包括 x[N/2], x[N/2+1], …, x[N-1];右半部分包括 x[0], x[1], …, x[N/2-1]。然后,在执行 numpy.fft.fftshift(x) 操作时,函数会将左半部分移到右边,将右半部分移到左边,得到新的序列 x’。此时,x’[0] = x[N/2], x’[1] = x[N/2+1], …, x’[N/2-1] = x[N-1],x’[N/2] = x[0], x’[N/2+1] = x[1], …, x’[N-1] = x[N/2-1]。因此,numpy.fft.fftshift(x) 函数的作用就是将原始序列 x 在频域上进行循环移位操作,使得序列中心点移到了序列的开始位置,方便进行傅里叶变换等操作。

需要注意的是,numpy.fft.fftshift() 函数默认将原始序列的中心点移到了数组的开始位置,如果需要将中心点移到数组的结束位置,可以使用 numpy.fft.ifftshift() 函数进行逆向的移位操作。

低通高通

低通保留图像整体的,丢失边界
高通边界信息

总体流程与方法讲解

opencv4 傅里叶变换
拿卡上的数字不断到数字模板中匹配

提取数字

https://blog.csdn.net/qq_40784418/article/details/105586644

轮廓检测
外接矩形
外轮廓
resize操作
轮廓过滤操作,比如说数字轮廓长宽比列是差不多的,直接去除不符合的

环境配置与预处理

opencv4 傅里叶变换
终端参数
opencv4 傅里叶变换
opencv4 傅里叶变换
路径指定好了
apply后确定

处理过程

opencv4 傅里叶变换
opencv4 傅里叶变换
opencv4 傅里叶变换
-1表示画出所有轮廓

轮廓进行排序

opencv4 傅里叶变换
外接矩形,用矩形的x坐标点排序,函数返回排序完的轮廓

继续

i为数值,c为轮廓
opencv4 傅里叶变换
这里估计就是统一不同数字的轮廓大小
ref是黑白图

信用卡 代码

https://blog.csdn.net/m0_52054107/article/details/114239739

信用卡图片

图片上有很多干扰项,处理起来没模板简单文章来源地址https://www.toymoban.com/news/detail-475273.html

到了这里,关于opencv4 傅里叶变换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python-OpenCV中的图像处理-傅里叶变换

    傅里叶变换经常被用来分析不同滤波器的频率特性。我们可以使用 2D 离散傅里叶变换 (DFT) 分析图像的频域特性。实现 DFT 的一个快速算法被称为快速傅里叶变换( FFT)。 对于一个正弦信号:x (t) = A sin (2πft), 它的频率为 f,如果把这个信号转到它的频域表示,我们会在频率

    2024年02月12日
    浏览(44)
  • [JavaScript]使用opencv.js实现基于傅里叶变换的频域水印(隐水印)

    PS:查了多方资料,都没有提到用 JavaScript 来实现频域水印的教程,故经过笔者的实践,遂写一篇教程来简单介绍。 通过了解频域水印的相关知识,我理解了频域水印就是先将图片进行傅里叶变换,得到频域图,然后将水印文字加到频域图中,在将频域图转换回去得到加了频

    2024年02月09日
    浏览(65)
  • 傅里叶级数和傅里叶变换之间的关系推理及应用

    傅里叶级数和傅立叶变换是傅里叶分析的两个主要工具,它们之间有密切的关系。 傅里叶级数是将一个周期函数分解为一系列正弦和余弦函数的和。它适用于周期性信号,可以将周期函数表示为一组振幅和相位不同的谐波分量的和。傅里叶级数展示了一个周期函数在不同频率

    2024年02月07日
    浏览(40)
  • 图傅里叶变换

    目录 什么是图信号? 如何理解图信号的”谱“? 图傅里叶变换是什么? 图傅里叶变换中特征值和图信号的总变差有什么关系? 让我们先总结一下,我们想要把图信号  正交分解到一组基  上; 那么怎么得到?可以通过对图的拉普拉斯矩阵 做特征分解得到,即. 于是   

    2024年02月06日
    浏览(27)
  • 傅里叶变换

    在计算机视觉中,有一个经典的变换被广泛使用——傅里叶变换。傅里叶变换是将时间域上的信号转变为频率域上的信号,进而进行图像去噪、图像增强等处理。 什么是时域(Time domain)?从我们出生,我们看到的世界都以时间贯穿,股票的走势、人的身高、汽车的轨迹都会

    2024年02月03日
    浏览(32)
  • 【高数+复变函数】傅里叶变换

    上一节 【高数+复变函数】傅里叶积分 回顾:上一节中主要讲了Fourier积分公式的指数形式及其三角形式 f ( t ) = 1 2 π ∫ − ∞ + ∞ [ ∫ − ∞ + ∞ f ( τ ) e − j ω τ d τ ] e j ω t d ω = 1 π ∫ 0 + ∞ [ ∫ − ∞ + ∞ f ( τ ) cos ⁡ ω ( t − τ ) d τ ] d ω f(t)=frac{1}{2pi}int_{-infty}^{+inf

    2024年02月04日
    浏览(35)
  • 图像的傅里叶变换

    先向大家道歉啊   作为基础知识这内容肯定有人写过   但作为屌丝没时间搜这个出处   也没什么商用价值 就是为了自己好看  收藏不好用 麻烦选别的   真的对不起就是为自己   烦请勿扰   看不惯你了 忍着 傅里叶基础 法国数学家吉恩·巴普提斯特·约瑟夫·傅里叶被

    2023年04月27日
    浏览(38)
  • 【scipy 基础】--傅里叶变换

    傅里叶变换 是一种数学变换,它可以将一个函数或信号转换为另一个函数或信号,它可以将时域信号转换为频域信号,也可以将频域信号转换为时域信号。 在很多的领域都有广泛的应用,例如信号处理、通信、图像处理、计算机科学、物理学、生物学等。 它最大的功能是能

    2024年02月06日
    浏览(28)
  • 通俗讲解傅里叶变换

    参考:六一礼物:给孩子解释什么是傅里叶变换 牛!不看任何数学公式来讲解傅里叶变换  如何直观形象、生动有趣地给文科学生介绍傅里叶变换? - 知乎 从基说起…… 从数学的角度,提供一个形象有趣的解释。理解傅里叶变换的钥匙是理解基♂,它能让你重新认识世界。

    2024年02月09日
    浏览(25)
  • 傅里叶变换与Matlab

      很多初学者学习了傅里叶变换之后,只是对其公式死记硬背,从而达到做题的目的,但并不理解其原理,对于很多时频分析问题的理解不够透彻。之前自己也是如此,在经过深入学习之后,对变换公式的的本质进行探讨,理解变换的原理及意义所在,同时将傅里叶变换和

    2024年01月20日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包