对一幅图像傅里叶变换后,显示其频谱图的MATLAB语句

对一幅图像傅里叶变换后,显示其频谱图的MATLAB语句,第1张

很简单。因为进行了傅氏变换以后图像上每点的值都成了复数,取abs(即取模值)后才能显示为图像。但是问题是进行变换再取模值后数字有时会变得非常大,拿常用的数据类型uint8(即8位无符号整型数)为例,所能表示的范围仅为0~255,如果数据超过255,在显示图像时系统自动把数据变成255,所以如果有很多数据都超过255,即使这些数据之间差别也蛮大,傅立叶变换显示的图像只会白茫茫一片(255代表白色),看不出差异来。所以需要对这些数据进行处理,常用的就是取对数(log),将很大的数据变成小一些的数据,落在0~255之间,能够准确地表示在图像上,更直观地发现数据之间的差异,也是进行傅氏变换的意义所在,区分高频分量和低频分量。

图像以im代替

r = im(:, :, 1);

g = im(:, :, 2);

b = im(:, :, 3);

fr = fft2(r); %傅里叶变换

fg = fft2(g);

fb = fft2(b);

or = ifft2(fr); %傅里叶反变换

og = ifft2(fg);

ob = ifft2(fb);

out(:, :, 1) = real(or);

out(:, :, 2) = real(og);

out(:, :, 3) = real(ob);

imshow(out) %out就是反变换回去的图像,如果没出错,显示出来的out应该与im一样

图像的细节对应的是高频部分,轮廓对应的是图像的低频部分,所以要留下轮廓的话应该去掉高频,结果是图像被模糊了。主要就是使用一个频域滤波器滤除高频部分,对应的是图像处理知识中的频域滤波部分,建议搜一些相关资料,冈萨雷斯的《数字图像处理——matlab版》中就有相关知识的详细介绍,包括频域滤波原理和滤波器设计实例代码都很详细。

不需要解析式,你学过数字信号处理的话看看matlab的fft函数就应该会用

fs=10000;%采样频率

N=1000; %采样点数

n=0:N-1;

t=n/fs;

y=sin(2pit)+01sin(4pit)+001sin(8pit);

%给定信号

figure(1);

subplot(211);

plot(t,x);%绘出信号的时域波形

xlabel('时间/t');

ylabel('幅值');

title('信号的时域波形');

grid on;

y=fft(x,N);%进行fft变换

m=abs(y(1:N/2))2/N;%求信号的真实幅值

f=nfs/N; %进行对应的频率转换

subplot(212);

stem(f(1:N/2),m(1:N/2));%绘出频谱

xlabel('频率/Hz');

ylabel('幅值');

title('信号频谱图');

grid on;

现在用的非常广泛的一种图像压缩方法JPEG(即拓展名为jpg的)都是采用了将图像8X8分块再进行DCT变换的办法

DCT变换 级二维离散余弦变换,是傅里叶变换简化。

对于图像的傅里叶变换 因为图像是二维矩阵,所以有二维离散傅里叶变换和二维连续傅里叶变换

在matlab中也有对应的函数F1=fft2(I);

一般8X8的图像,DCT变换之后变成8X8的频谱图,左上角为直流分量,表示图像较为平滑没有太大变化的部分,其他为交流分量,右下为高频部分,对应图像中灰度数值变化比较快的部分

快断网了,如果还不清楚明天再说

file=get(handlesedit1,'string'); % 得到图像文件名和路径

X=imread(file); % 读入图像

fftI=fft2(X); % 傅立叶转换

sfftI=fftshift(fftI); % 平移

RR=real(sfftI); % 实部

II=imag(sfftI); % 虚部

A=sqrt(RR^2+II^2); % 距离

A=(A-min(min(A)))/(max(max(A))-min(min(A)))255;

axes(handlesaxes2); % 设置图像显示轴

imshow(A); % 显示图像

快速离散二维傅里叶变换

I=imread('Missbmp');

figure(1)

[m,n]=size(I)

for k=1:n

wht(:,k)=hadmard(m)I(:,k)/m;

end %沃尔什变换

以上在matlab实现

以上就是关于对一幅图像傅里叶变换后,显示其频谱图的MATLAB语句全部的内容,包括:对一幅图像傅里叶变换后,显示其频谱图的MATLAB语句、如何将彩色图像用Matlab进行傅里叶变换,再反变换回去、matlab图像处理,对一幅图像做傅里叶变换,去掉细节部分留下轮廓部分,是去掉高频还是低频等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10177262.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存