位置: IT常识 - 正文

图像的傅里叶变换(图像的傅里叶变换和离散余弦变换实验报告)

编辑:rootadmin
图像的傅里叶变换

推荐整理分享图像的傅里叶变换(图像的傅里叶变换和离散余弦变换实验报告),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:图像的傅里叶变换,图像的傅里叶变换matlab,图像的傅里叶变换,图像的傅里叶变换和离散余弦变换实验报告,图像的傅里叶变换是复数正交变换,图像的傅里叶变换,图像的傅里叶变换是实数正交变换,图像的傅里叶变换是实数正交变换,内容如对您有帮助,希望把文章链接给更多的朋友!

先向大家道歉啊   作为基础知识这内容肯定有人写过   但作为屌丝没时间搜这个出处   也没什么商用价值 就是为了自己好看  收藏不好用 麻烦选别的   真的对不起就是为自己   烦请勿扰   看不惯你了 忍着

傅里叶基础

法国数学家吉恩·巴普提斯特·约瑟夫·傅里叶被世人铭记的最大的贡献是:他指出任何周期函数都可以表示为不同频率的正弦和/或余弦之和的形式,每个正弦项和/或余弦项乘以不同的系数(现在称该和为傅里叶级数)。无论函数多么复杂,只要它是周期的,并且满足某些适度的数学条件,都可以用这样的和来表示。即一个复杂的函数可以表示为简单的正弦和余弦之和。甚至非周期函数(单该曲线下的面积是有限的)也可以用正弦和/或余弦乘以加权函数的积分来表示。在这种情况下的公式就是傅里叶公式。 whaosoft aiot http://143ai.com

比如说我们以制作一个饮料的过程,使用时域的角度来看就是这样:

这里是什么意思呢,就是说一个饮料的制作需要在18点整放1个单位冰糖、3个单位红豆、2个单位的绿豆、4个单位的西红柿,还有1个单位的纯净水。然后再18:01分只需要假如一个单位的纯净水。后面也是一致。 而频域是怎么描述这件事的呢?

具体来说就是说他发现了一个规律,就是说这个制作过程,每分钟都要加入冰糖,每两分钟都要加入红豆,每三分钟都要加入一次绿豆… 对于时域角度我们这样描述。

对于频域角度我们这样描述这件事,用直方图表示就是:

如果要考虑更精准的时间精度,我们就要引入相位这个概念,它是一个和时间差有关的一个表述。

这里我们说明一下就是时域和频域的表述是互逆的,对于时域我们是时间为横坐标,振幅为纵坐标。对于频域我们以频率为横坐标,振幅为纵坐标。但是可以看得出来频域的表述更加简单,但是比较抽象,不容易理解。

傅里叶说:任何连续周期信号,可以由一组适当的正弦曲线组合而成。

注意这里是一组而不是一个。比如对于这样的一个图像:

f(x)=3np.sin(0.8x)+7np.sin(1/3x)+2np.sin(0.2x)

看上去是毫无规律可言吧,但是它也可以由一组正弦函数组成。

他们是可逆的,想不到吧,乱七八糟的东西也有规律了。但是他们就是这样组合而成的吗?不可能吧,所以这里就是不是同时开始的一组余弦函数,在叠加时要体现开始的时间。也就说组合的函数他们的开始时间是不一样的。在这里分别对应0,2,3,看公式就看出来啦。

这里多说一嘴就是傅里叶变换从时域角度来看,这个世界是动态的!从频域角度来看这个世界是静止的。

从数学角度来讲:傅里叶变换将一个任意的周期函数分解成为无穷个正弦函数的和的形式。

从物理角度来讲:傅里叶变换实现了将信号从空间域到频率域的转换。

傅里叶基础numpy实现

python是可以实现傅里叶变换的,这里就要说到三剑客的numpy了。对应的函数是:numpy.fft.fft2返回一个复数数组(complex ndarray)。numpy.fft.fftshift这个函数时表示把将零频率分量移到频谱中心。

还要设置频谱的范围20*np.log(np.abs(fshift)),对于图像来说就是255了。

import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('image\\lena.bmp',0)f = np.fft.fft2(img)fshift = np.fft.fftshift(f)result = 20*np.log(np.abs(fshift))plt.subplot(121)plt.imshow(img, cmap = 'gray')plt.title('original')plt.axis('off')plt.subplot(122)plt.imshow(result, cmap = 'gray')plt.title('result')plt.axis('off')plt.show()

结果是:

原图和频谱图像。

傅里叶得到低频、高频信息,针对低频、高频处理能够实现不同的目的。

傅里叶过程是可逆的,图像经过傅里叶变换、逆傅里叶变换后,能够恢复到原始图像。

在频域对图像进行处理,在频域的处理会反映在逆变换图像上。

逆傅里叶numpy实现

对于傅里叶的逆操作这里没有什么可说的,就是把频域图像转回原图像。

函数是:numpy.fft.ifft2,那么还有一个操作就是把中间移动回去。numpy.fft.ifftshift。

iimg = np.abs(逆傅里叶变换结果)而第二个图就表示低频部分,边缘就表示为高频部分。

import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('image\\boat.bmp',0)f = np.fft.fft2(img)fshift = np.fft.fftshift(f)ishift = np.fft.ifftshift(fshift)iimg = np.fft.ifft2(ishift)iimg = np.abs(iimg)plt.subplot(121),plt.imshow(img, cmap = 'gray')plt.title('original'),plt.axis('off')plt.subplot(122),plt.imshow(iimg, cmap = 'gray')plt.title('iimg'),plt.axis('off')plt.show()图像的傅里叶变换(图像的傅里叶变换和离散余弦变换实验报告)

首先我们要进行傅里叶变换,才可以进行逆操作。结果是:

完全一致!!!

频域的高通滤波

首先我们来看看到底什么是高频,什么是低频,在图像中如何理解。

低频对应图像内变化缓慢的灰度分量。例如,在一幅大草原的图像中,低频对应着广袤的颜色趋于一致的草原。

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

对于滤波我们之前也了解过了,就是说过滤掉不需要的部分。

通过低频的滤波器称为低通滤波器。

通过高频的滤波器称为高通滤波器。

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

衰减高频而通过低频,低通滤波器,将模糊一幅图像。

衰减低频而通过高频,高通滤波器,将增强尖锐的细节,但是会导致图像的对比度降低。

那么我们只需要再滤波中来一个掩膜操作,具体看下面:

对于这个掩膜我们这样做:​​​​​​​

rows, cols = img.shapecrow,ccol = int(rows/2) , int(cols/2)fshift[crow-30:crow+30, ccol-30:ccol+30] = 0

具体代码是:​​​​​​​

import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('image\\boat.bmp',0)f = np.fft.fft2(img)fshift = np.fft.fftshift(f)rows, cols = img.shapecrow,ccol = int(rows/2) , int(cols/2)fshift[crow-30:crow+30, ccol-30:ccol+30] = 0ishift = np.fft.ifftshift(fshift)iimg = np.fft.ifft2(ishift)iimg = np.abs(iimg)plt.subplot(121),plt.imshow(img, cmap = 'gray')plt.title('original'),plt.axis('off')plt.subplot(122),plt.imshow(iimg, cmap = 'gray')plt.title('iimg'),plt.axis('off')plt.show()

得到后的图象是这样的:

可以出来把边缘描绘的非常完整,但是图像的对比度降低了。

傅里叶OpenCV实现

对于OpenCV中的傅里叶变换函数是:返回结果=cv2.dft(原始图像,转换标识)

返回结果是双通道的,第一个是实数部分,第二个通道是虚数部分。

输入图像要首先转换成np.float32格式,np.float32(img)

flags = cv2.DFT_COMPLEX_OUTPUT,输出一个复数阵列

移动频谱部分和numpy一致,是这样的,numpy.fft.fftshift,然后进行返回值=cv2.magnitude(参数1,参数2),这里参数1就是实数部分,参数2就是虚数部分,并且进行𝑑𝑠𝑡 𝐼 = 根号𝑥(𝐼)2 + 𝑦(𝐼)2操作。​​​​​​​

import numpy as npimport cv2import matplotlib.pyplot as pltimg = cv2.imread('image\\lena.bmp',0)dft = cv2.dft(np.float32(img),flags = cv2.DFT_COMPLEX_OUTPUT)dftShift = np.fft.fftshift(dft)result = 20*np.log(cv2.magnitude(dftShift[:,:,0],dftShift[:,:,1]))plt.subplot(121),plt.imshow(img, cmap = 'gray')plt.title('original'),plt.axis('off')plt.subplot(122),plt.imshow(result, cmap = 'gray')plt.title('result'), plt.axis('off')plt.show()

得到的图像和numpy一致。

傅里叶OpenCV逆变换实现

对于傅里叶变换的逆操作,使用OpenCV的函数就是返回结果=cv2.idft(原始数据),然后计算幅度函数仍然是返回值=cv2.magnitude(参数1,参数2),numpy.fft.ifftshift​​​​​​​

import numpy as npimport cv2import matplotlib.pyplot as pltimg = cv2.imread('image\\lena.bmp',0)dft = cv2.dft(np.float32(img),flags = cv2.DFT_COMPLEX_OUTPUT)dftShift = np.fft.fftshift(dft)ishift = np.fft.ifftshift(dftShift)iImg = cv2.idft(ishift)iImg= cv2.magnitude(iImg[:,:,0],iImg[:,:,1])plt.subplot(121),plt.imshow(img, cmap = 'gray')plt.title('original'), plt.axis('off')plt.subplot(122),plt.imshow(iImg, cmap = 'gray')plt.title('inverse'), plt.axis('off')plt.show()

频域的低通滤波

我们这里的想法就是:

自己构建一个低通滤波器,把中间位置设置成255,其余部分为0。那么我们做一个与操作,就可以把高频过滤了。​​​​​​​

rows, cols = img.shapecrow,ccol = int(rows/2) , int(cols/2)mask = np.zeros((rows,cols,2),np.uint8)mask[crow-30:crow+30, ccol-30:ccol+30] = 1

低通滤波器构建代码。 然后我们完整代码就是:​​​​​​​

import numpy as npimport cv2import matplotlib.pyplot as pltimg = cv2.imread('image\\lena.bmp',0)dft = cv2.dft(np.float32(img),flags = cv2.DFT_COMPLEX_OUTPUT)dftShift = np.fft.fftshift(dft)rows, cols = img.shapecrow,ccol = int(rows/2) , int(cols/2)mask = np.zeros((rows,cols,2),np.uint8)mask[crow-30:crow+30, ccol-30:ccol+30] = 1fShift = dftShift*maskishift = np.fft.ifftshift(fShift)iImg = cv2.idft(ishift)iImg= cv2.magnitude(iImg[:,:,0],iImg[:,:,1])plt.subplot(121),plt.imshow(img, cmap = 'gray')plt.title('original'), plt.axis('off')plt.subplot(122),plt.imshow(iImg, cmap = 'gray')plt.title('inverse'), plt.axis('off')plt.show()

结果是:

傅里叶变换有什么应用场景

傅里叶变换可以将一个时域信号转换成在不同频率下对应的振幅及相位,其频谱就是时域信号在频域下的表现,而反傅里叶变换可以将频谱再转换回时域的信号。最简单最直接的应用就是时频域转换,比如在移动通信的LTE系统中,要把接收的信号从时域变成频域,就需要使用FFT(快速傅里叶变换)。又例如对一个采集到的声音做傅立叶变化就能分出好几个频率的信号。比如南非世界杯时,南非人吹的呜呜主拉的声音太吵了,那么对现场的音频做傅立叶变化(当然是对声音的数据做),会得到一个展开式,然后找出呜呜主拉的特征频率,去掉展开式中的那个频率的sin函数,再还原数据,就得到了没有呜呜主拉的嗡嗡声的现场声音。而对图片的数据做傅立叶,然后增大高频信号的系数就可以提高图像的对比度。同样,相机自动对焦就是通过找图像的高频分量最大的时候,就是对好了。

本文链接地址:https://www.jiuchutong.com/zhishi/300291.html 转载请保留说明!

上一篇:毕业设计-基于机器学习的股票预测(毕业设计基于plc的全自动包装机)

下一篇:C语言进阶——自定义类型:枚举、联合(c语音进阶)

  • 哪种电子血压计比较精准(哪种电子狗好)(哪种电子血压计准确度高)

    哪种电子血压计比较精准(哪种电子狗好)(哪种电子血压计准确度高)

  • 网易邮箱可以改密码吗(网易邮箱可以改绑定手机吗)

    网易邮箱可以改密码吗(网易邮箱可以改绑定手机吗)

  • iphone怎么关闭锁屏搜索(iphone怎么关闭锁屏的音乐播放器)

    iphone怎么关闭锁屏搜索(iphone怎么关闭锁屏的音乐播放器)

  • ipad突然没声音(iPad突然没声音但是耳机可以)

    ipad突然没声音(iPad突然没声音但是耳机可以)

  • 苹果手机有没有应用分身功能(苹果手机有没有隐藏软件的功能)

    苹果手机有没有应用分身功能(苹果手机有没有隐藏软件的功能)

  • 电脑有横条纹还一闪一闪(电脑有横条纹还一闪一闪笔记本)

    电脑有横条纹还一闪一闪(电脑有横条纹还一闪一闪笔记本)

  • 酷睿m5 6y57相当于i几(酷睿m5-6y54)

    酷睿m5 6y57相当于i几(酷睿m5-6y54)

  • qq头像为什么变成企鹅(qq头像为什么变成黑色)

    qq头像为什么变成企鹅(qq头像为什么变成黑色)

  • 公众号注销需要多久(公众号注销需要管理员确认吗)

    公众号注销需要多久(公众号注销需要管理员确认吗)

  • 苹果x玩一会儿就很烫是什么原因(苹果x玩一会儿就很烫怎么办)

    苹果x玩一会儿就很烫是什么原因(苹果x玩一会儿就很烫怎么办)

  • bkl-tl10是什么型号(blntl10参数)

    bkl-tl10是什么型号(blntl10参数)

  • 公众号什么意思(抖音公众号什么意思)

    公众号什么意思(抖音公众号什么意思)

  • 苹果怎么开通爱奇艺vip(iphone开通爱奇艺会员怎么开通)

    苹果怎么开通爱奇艺vip(iphone开通爱奇艺会员怎么开通)

  • 一加5发布时间(一加5上市时间)

    一加5发布时间(一加5上市时间)

  • 抖音怎么开瘦身特效(抖音怎么开瘦身视频)

    抖音怎么开瘦身特效(抖音怎么开瘦身视频)

  • iphonex怎么查保修时间(苹果x如何看保修时间)

    iphonex怎么查保修时间(苹果x如何看保修时间)

  • 怎么把音乐拷贝到u盘(怎么把音乐拷贝到电脑)

    怎么把音乐拷贝到u盘(怎么把音乐拷贝到电脑)

  • ipad 6th是什么型号(ipad6属于什么型号)

    ipad 6th是什么型号(ipad6属于什么型号)

  • 钉钉怎么滚动长截图(钉钉如何截图滚动窗口)

    钉钉怎么滚动长截图(钉钉如何截图滚动窗口)

  • 华为ar测量工具在哪(华为ar测量工具官网下载)

    华为ar测量工具在哪(华为ar测量工具官网下载)

  • 苹果手机的音乐文件在哪里(苹果手机的音乐播放器在哪里)

    苹果手机的音乐文件在哪里(苹果手机的音乐播放器在哪里)

  • flash helper service是什么意思(flashhelperservice.exe是病毒吗)

    flash helper service是什么意思(flashhelperservice.exe是病毒吗)

  • 电脑开机密码框不见了(电脑开机密码框一直自动跳)

    电脑开机密码框不见了(电脑开机密码框一直自动跳)

  • Linux系统开机黑屏提示kernel panic该怎么办?(linux系统开机黑屏怎么办)

    Linux系统开机黑屏提示kernel panic该怎么办?(linux系统开机黑屏怎么办)

  • 一对大西洋海雀在接吻,设得兰群岛,苏格兰 (© Vince Burton/Minden Pictures)(大西洋,一望无际的海面)

    一对大西洋海雀在接吻,设得兰群岛,苏格兰 (© Vince Burton/Minden Pictures)(大西洋,一望无际的海面)

  • 公转私做账麻烦吗
  • 税收筹划分为哪几类
  • 什么是货物运输保险
  • 固定资产入账怎么做账
  • 去年的电费可以在今年入账分录
  • 自然人系统怎么申报个人所得税
  • 购进餐饮服务的会计分录
  • 个人独资企业处罚听证的标准
  • 票据贴现利息费用计入
  • 个税全年一次性奖金单独计税
  • 商业保险可以抵扣增值税吗
  • 计提的费用年底要冲回吗
  • 公司注销前的发言怎么写
  • 法人购买设备怎么入账
  • tplink路由器手机怎么设置
  • 如何处理企业所得税纠纷
  • 市政府的财政拨款怎么算
  • mac怎么设置桌面组件
  • linux开机出现grub解决方法
  • 关于笔记本电脑的文案
  • 滴水观音的养殖方法选好浇水
  • 中国国防科技大学 博士
  • 租金收入会计分录怎么写
  • 增值税退税是否属于政府补助
  • 备发工资的会计科目
  • 已知税额和不含税额求税率
  • nodejs vue
  • 功能强大的php发展趋势
  • -mtime命令
  • 公司从银行提取现金4000元备作零星开支
  • 关于印花税免税的规定
  • 转出未交增值税会计处理
  • 个税申报密码重置多久能用
  • windows11/windows10专业清理的系统工具Duplicate Cleaner5.0.13中文破解免费下载
  • 分公司开票总公司收款怎么做账
  • 购买项目用设备计入什么科目
  • 金蝶利润表没有信用减值损失
  • 非税收入票据可以跨年度使用吗
  • 无偿调入资产如何做账
  • 如何在Access中设置有效性规则必须大于等于0
  • 代扣款业务的处理方式
  • 让渡资产使用权包括
  • 油卡预付卡发票能入费用吗怎么入账
  • 公司借款给个人的税务问题
  • 期初数不对怎么办
  • 工地上报销项目有哪些
  • 房屋租赁合同税率多少
  • 施工人员的工资计入
  • 养老保险滞纳金计算器
  • 认购股份的形式主要有
  • 民营企业固定资产管理规定
  • sql语句优化总结
  • mysql进阶之路
  • win7系统如何打开
  • xp系统删除密码
  • mac安装路径选择
  • linux内容查找
  • optimize error by column count
  • Red Hat Enterprise Linux 5.X的图形安装教程
  • iphone制造成本
  • win8怎么关闭系统更新
  • wordpress怎么安装插件
  • windows7开机显示错误恢复进不去
  • WIN10系统怎么改成泰语
  • php运行时出现找不到该网页
  • win8声音小怎么解决
  • opengl编译
  • nginx优雅退出
  • angularjs内置了很多有用的服务
  • unity游戏换皮教程
  • pythonyield理解与用法
  • js实现拖拽div的弹出框
  • jqueryapi手机版
  • android实现选择题模式
  • 广东税务总局发票怎么开
  • 环保设备企业所得税优惠
  • 地税网上办税服务厅
  • 税控盘服务费必须每年交吗为什么
  • 江西省国家税务局李德平
  • 坡面台阶
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设