案例解释图像傅里叶变换的幅度谱和相位谱的以及反变换
目的:读取图像 A(lena.tiff)和B(rice.tif),显示这两幅图像,对图像作傅立叶变换,显示图像的傅里叶幅度谱和相位谱。做傅立叶逆变换,显示重建图像。
图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度
对图像而言,图像的边缘部分是突变部分,变化较快,因此反应在频域上是高频分量(能量低,在变换后的图中,呈现黑灰色,内容见我的上一篇博客http://blog.csdn.net/goodshot/article/details/78488459);图像的噪声大部分情况下是高频部分;图像平缓变化部分则为低频分量(能量高,在变换后的图中,呈现黑灰色)。也就是说,傅立叶变换提供另外一个角度来观察图像,可以将图像从灰度分布转化到频率分布上来观察图像的特征。
imshow()函数:
imshwo()函数用于接收一个像素矩阵,显示该图像,其显示的参数有两种类型
unit8;像素在矩阵处理范围为0-255
double:若值大于1,转化为1,若小于1,转化为0
图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。傅立叶频谱图上我们看到的明暗不一的亮点,实际是图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率(关于频率,参考后面的附文)的大小(可以这么理解,图像中的低频部分(能量大,呈现白色)指低梯度的点,高频部分相反(能量小,呈现黑灰色))。
代码如下:
%%图像的傅里叶变换%%
imA=imread('rice.tif','tif'); %读取图像
imB=imread('lena.tiff','tif');
subplot(2,3,1);
imshow(imA);
title('原图像A');
subplot(2,3,2);
imshow(imB);
title('原图像B');
FA=fft2(imA);%对图像进行傅里叶变换
FB=fft2(imB);
fA=fftshift(FA); %对图像频谱进行移动,是0频率点在中心
fB=fftshift(FB);
sA=log(abs(fA));%获得傅里叶变换的幅度谱
sB=log(abs(fB));
phA=log(angle(fA)*180/pi);%获得傅里叶变换的相位谱
phB=log(angle(fB)*180/pi);
subplot(2,3,3);
imshow(sA,[]); %显示图像的度谱,参数与[]是为了将sA的值线形拉伸
title('图像A的傅里叶变换幅度谱');
subplot(2,3,4);
imshow(phA,[]); %显示图像傅里叶变换的相位谱
title('图像A傅里叶变换的相位谱');
subplot(2,3,5);
imshow(sB,[])
title('图像B的傅里叶变换幅度谱');
subplot(2,3,6);
imshow(phB,[]);
title('图像B傅里叶变换的相位谱');
A=ifft2(FA);%傅里叶反变换
B=ifft2(FB);
figure
subplot(1,2,1);
imshow(A,[]);
title('傅里叶反变换得到的A图像');
subplot(1,2,2);
imshow(B,[]);
title('傅里叶反变换的到的B图像');
结果如下:
附:
角速度和角频率是同一个物理量吗?
在国际单位制中,它的单位是弧度/秒.当所取时间△t较长时,这一比值是平均角速度;当所取时间△t→0时,这一比值的极限就是即时角速度.角速度是描述物体转动的快慢和方向的物理量.只是在中学阶段还不考虑角速度的方向性,而将它作为标量来处理.
绕固定转动轴转动的物体上,任意点的角速度ω和线速度v的关系为v= ωr .如果物体每秒转动次数为n或者它转动一周所需时间为t,则有ω = 2πn =2π/t.
频率是描述物体振动快慢的物理量,所以角频率也是描述物体振动快慢的物理量.频率、角频率和周期的关系为ω = 2πf = 2π/t.
在简谐振动中,角频率与振动物体间的速度 v 的关系为 v =ωasin( ωt + φ )
若以一质点作匀速圆周运动和一个弹簧振子作简谐振动,比较角速度ω 与角频率ω的异同,列表如下:
名称 |
角速度 |
角频率 |
定义 |
单位时间内转动的角度 |
单位时间内完成全振动次数的2π倍 |
单位 |
弧度/秒 |
弧度/秒 |
性质 |
描述运动的快慢 |
描述振动的快慢 |
方向性 |
有方向性 |
无方向性 |
与n或f的关系 |
ω=2πn |
ω = 2πf |
与周期的关系 |
ω = 2π/t |
ω = 2π/t |
与哪些因素有关 与物体所受向心力有关 只由振动系统本身性质决定
与速度的关系 ω = v/r ( v为线速度) v = ωasin(ω t + φ ) (a为振幅) 我们往往在分析简谐振动时,采用参考圆法,那么参考点以角速度ω旋转时,它的投影就代表了给定的简谐振动的位移规律.这时参考点的角速度跟振动的角频率相对应.应该指出,用参考圆研究简谐振动仅仅只是一种方法,两种运动是不同性质的机械运动,它们之间没有什么必然的联系.
案例解释图像傅里叶变换的幅度谱和相位谱的以及反变换相关推荐
- 图像傅里叶变换的幅度谱、相位谱以及双谱重构原图像
简单的求取下灰度图像的幅度谱和相位谱并进行双谱重构: 直接上代码: clear all Picture = imread('E:\others\Picture\Library.jpg');Pictur ...
- 图像傅里叶变换的幅度谱和相位谱的以及反变换
目的:读取图像 A(lena.tiff)和B(rice.tif),显示这两幅图像,对图像作傅立叶变换,显示图像的傅里叶幅度谱和相位谱.做傅立叶逆变换,显示重建图像. 图像的频率是表征图像中灰度变化剧烈 ...
- 交换两幅图像的幅度谱和相位谱,并重构图像
转载自:http://blog.sina.com.cn/s/blog_909778ea0100y8ju.html 博主:科技狸的博客: 来源:新浪博客: 交换两幅图像的幅度谱和相位谱,并重构图像!!! ...
- 【MATLAB图像处理】傅里叶变换--幅度谱、相位谱、逆变换
fft2() 傅里叶正变换 fftshift() 频谱搬移-直流量(f=0)搬移至频谱中心 I=imread('exp2.tif'); %读入原图像 I1=I(:,:,1:3); %四通道转为三通 ...
- 线性调频信号(LFM)的形式及幅度谱、相位谱特性
线性调频信号在SAR系统中非常重要,其瞬时频率是时间的线性函数.该信号常用于信号的发射,以获得均匀的信号带宽,在接收信号中则来自传感器运动.本篇博客主要讨论线性调频信号的形式,及在matlab仿真中的 ...
- matlab求雷克子波相位谱,求雷克子波的振幅谱和相位谱的MATLAB程序,谢谢 !!!!!...
%% 自己写了如下程序,望采纳! clc;clear;close all; %Ricker子波 f=40;dt=0.004; nw=6./f/dt; nw=2*floor(nw/2)+1; nc=fl ...
- 图像傅里叶变换,幅度谱,相位谱
<span style="font-size:18px;">cl; img=imread('lena.jpg'); %img=double(img); f=fft2(i ...
- 图像二维离散傅里叶变换、幅度谱、相位谱
clear, clc I = imread('...');F = fftshift(fft2(I)); % 对图像进行二维 DFT(fft2),并移至中心位置 magn = log(abs(F)); ...
- 使用matlab读取图像并通过matlab自带的fft2,fftshift,ifftshift,ifft2等函数获取该图像的傅里叶频谱图,幅度图,相位谱图,幅度图,相位谱图,幅度谱重建图以及相位谱重建
%% 读取图像.预处理 Picture1 = imread('Cameraman.tif');tryPicture1=rgb2gray(Picture1); % 如果是RGB图像,转成灰度图 catc ...
最新文章
- 【 MATLAB 】常用的离散时间序列的 Matlab 产生
- Tree命令安装和使用
- mysql 主键 下一个值_INNODB自增主键的一些问题 vs mysql获得自增字段下一个值
- 根据url获取html源码,通过URL访问和获取html源代码
- openshift_在OpenShift上扩展Java EE微服务
- 具有Couchbase,Java EE和WildFly的CRUD Java应用程序
- Linux下实现视频读取(二)---camera參数设定
- TCP滑窗与拥塞控制
- bootstrape实战案例_bootstrap 实战入门教程(一)
- android-activity生命周期方法
- 开源中国大佬是怎么用Selenium做自动化web测试的
- 在 Linux 命令行发送邮件的 5 种方法
- 信息论与编码2 BCH码的构造
- div内容上下左右居中
- Mybatis 中事务提交方式
- 超详细的抖音养号上热门技巧,看完这一篇就够了
- 网上订鲜花怎么配送?鲜花配送为何首选顺丰同城急送?
- windows10 如何使用 debug
- 适用于Windows11 任务栏开始菜单和图标,资源管理器显示异常修复的方法
- 从抄书到开源之巅:章亦春的程序人生
热门文章
- 算法题丨Next Permutation
- 基于jquery类库的绘制二维码的插件jquery.qrcode.js
- 2021年100题Java春招面试题
- 没有一款趁手的数据监控软件?试一下NetData不,用了你就绝对离不开他!
- MinIO Server config.json (v18) 指南
- Java多线程相关的几十个问题
- 使用adduser命令在Debian Linux中创建用户
- C语言,利用条件语句判断是否为三角形并输出面积
- Redis集群搭建~Redis-x64-3.2.100版本
- MySQL学习——操作存储过程