频域滤波之傅立叶变换的一个例子

DFT:discrete Fouriter Transform离散傅立叶变换
傅立叶表换具有唯一性。傅立叶变换揭示了信号的时域特性和频域特性之间的确定的内在联系。
在图像里面时域特性表现为空域特性。

一个例子

下面是用傅立叶与逆傅立叶变换操作图像

% 下面求图像的傅立叶变换频谱
f=imread('E:\资料\onedrive\code\test\image\Fig0403(a)(image).tif');
F=fft2(f);
S=abs(F);     % 去F的频谱
w=2;h=3;i=0;
i=i+1;subplot(w,h,i);imshow(f,[]);
i=i+1;subplot(w,h,i);imshow(S,[]);
% imshow(K)与imshow(K,[])的区别;
% imshow(K)直接显示K;
% imshow(K,[])显示K,并将K的最大值和最小值分别作为纯白(255)和纯黑(0),中间的K值映射为0到255之间的标准灰度值。

%fftshift移动零频点到频谱中间,重新排列fft,fft2和fftn的输出结果。
Fc = fftshift(F);
i=i+1;subplot(w,h,i);imshow(abs(Fc),[]);
 
%log变换将像素范围压缩;

S2=log(1+abs(Fc));
i=i+1;subplot(w,h,i);imshow(S2,[]);

f=real(ifft2(F));% 逆傅立叶变换;逆变换后取得实部就好
%这次变换中傅立叶变换后没有做什么操作,所以逆傅立叶变换后还是原来的结果;

i=i+1;subplot(w,h,i);imshow(f,[]);

显示的优化

从上面的代码我们看到,在一个窗口输出多个图片,需要自己设置位置什么的,但是刚开始我们不知道最终要显示多少行多少列的图片,而且随着图片的增加需要经常修改显示的参数。同时如果调换显示顺序和插入显示都需要调整很多代码,基于这些不便,我自己写了个imshow函数。程序会一直保存你要输出的图像,直到输入0,把图像全部输出出来,同时能够实现自适应。

function myImshow(img)
persistent myNumOfImg %记录最终需要的图片个数;
persistent M %记录所有的图片
if isempty(myNumOfImg)
    myNumOfImg=0;
    M=cell(5);
end
    
if isequal(img,0) %表示结束
    h=ceil(sqrt(myNumOfImg)); %宽
    w=ceil(myNumOfImg*1.0/h);  %高
    for i=1:myNumOfImg
        subplot(w,h,i);
        imshow(M{i},[]);
    end
    
else
    myNumOfImg=myNumOfImg+1;
    M{myNumOfImg}=img;    
end

运行示例

clear all;
close all;
f=imread('E:\资料\onedrive\code\test\image\Fig0403(a)(image).tif');
F=fft2(f);
S=abs(F);     % 去F的频谱
myImshow(f);
myImshow(S);

%fftshift移动零频点到频谱中间,重新排列fft,fft2和fftn的输出结果。
Fc = fftshift(F);
% i=i+1;subplot(w,h,i);imshow(abs(Fc),[]);
myImshow(abs(Fc));
%log变换将像素范围压缩;

S2=log(1+abs(Fc));
% i=i+1;subplot(w,h,i);imshow(S2,[]);
myImshow(S2);
f=real(ifft2(F));% 逆傅立叶变换;
%这次变换中傅立叶变换后没有做什么操作,所以逆傅立叶变换后还是原来的结果;

myImshow(f);
myImshow(0);

运行结果

untitled.png

相关参考

http://yunniyu.blog.163.com/blog/static/22208431201261665217676
如何在matlab里面实现静态变量
matlab中cell的使用方法
这个说明可以使用cell来建立三维数组,低两维的维数可以不一样
matlab如何清空程序运行过程中产生的矩阵
因为这里我们的程序用到了静态变量,所以需要学会清空

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 深入理解傅里叶变换Mar 12, 2017 这原本是我在知乎上对傅立叶变换、拉普拉斯变换、Z变换的联系?为什么要进...
    价值趋势技术派阅读 11,067评论 2 2
  • 一、傅立叶变换的由来 关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚...
    constant007阅读 9,981评论 1 10
  • 这些年计算机视觉识别和搜索这个领域非常热闹,后期出现了很多的创业公司,大公司也在这方面也花了很多力气在做。做视觉搜...
    方弟阅读 11,589评论 6 24
  • 1. 图像处理中的傅立叶变换 将一幅图像从其空间域(spatial domain)转换为频域(frequ...
    xieyan0811阅读 14,955评论 3 18
  • 紫氣歸來春意暖, 華庭薈萃柳煙濃。 金樽起處書心意, 玉液流香醉佳盟。 喜看良緣終執手, 新人秀色更雍容。 今朝嫁...
    宏波_阅读 4,721评论 0 0