怎么用matlab对图像在频域进行滤波的实例

如题所述

clc;clear all;

%读原始图像%

format long

Blurred=imread('fig525(b).bmp');

subplot(1,2,1);imshow( Blurred);title('原图像');

%自编函数进行维纳滤波%

k=0.0025;

[m,n]=size(Blurred);

spectrum=zeros(m,n);

H=zeros(m,n);

for u=1:m

for v=1:n

H(u,v)=exp(-k*((u-m/2)^2+(v-n/2)^2)^(5/6));

spectrum(u,v)=H(u,v)^2;

end

end

f=double(Blurred);

F1=fftshift(fft2(f));

HW=H./(spectrum+0.001);

restore1=HW.*F1;

restored=real(ifft2(ifftshift(restore1)));

subplot(1,2,2);imshow(restored,[]);title('自编函数进行维纳滤波');

%调用matlab提供的维纳滤波函数%

figure;

hw1=real(ifft2(ifftshift(H)));%转化到空域上来

result1=deconvwnr(Blurred,hw1,0.001);

result2=ifftshift(result1);%再去图像进行1,3象限对调,2与4象限对调

subplot(1,2,1);imshow(result2,[]);title('调用维纳滤波函数');
温馨提示:内容为网友见解,仅供参考
无其他回答

用MATLAB实现频域平滑滤波以及图像去噪代码
spatial frequency (SF) filtering by low pass filter the SF filter is unselective to orientation (doughnut-shaped in the SF domain).[FileName,PathName,FilterIndex] = uigetfile ;filename = fullfile(PathName, FileName) ;[X map] = imread(filename, fmt); % read image L = double(...

关于用MATLAB设计对信号进行频谱分析和滤波处理的程序
plot(')); %绘制叠加函数S经过带通滤波器以后的频谱图 title('带通滤波后的频谱图');

Matlab图像处理系列——频率域图像增强之傅里叶级数和傅里叶变换_百度...
二维函数f(x,y)的傅里叶变换中,原点位置F(0,0)对应于原图像f(x,y)的平均灰度,也称为直流分量。幅度谱、相位谱和功率谱则是理解图像在频率域的特性关键。幅度谱、相位谱和功率谱 幅度谱反映了不同频率的贡献比例,相位谱则包含了信号在各频率下的相位信息,而功率谱则是幅度谱的平方,表示了...

MATLAB--数字图像处理 频域图像分析
1.自选一幅图像,并对其分别添加一定强度的周期噪声和高斯噪声,然后分别采用高斯模板、中值滤波的时域方法以及傅里叶变换和小波变换的频率滤波方法对该含噪图像进行去噪处理,并基于PSNR值和视觉效果这两个指标来比较这四种滤波方法对两种不同噪声的去噪能力。 2.编写一个程序,要求实现下列算法:首先将阁像分割为8x8的子...

matlab中怎么让信号通过滤波器
1、首先打开Matlab,鼠标点击图上的图标。2、然后在弹出的对话框中找到图中的位置。3、点击图中的filter designs。4、看图中绿色的部分(Analog Filter Design)就是模拟滤波器。5、然后点击左上角的图标会弹出窗口,拖进来。6、双击上图的图标出现模拟滤波器的设置项。

matlab 数字带通滤波器
通过fir1函数设计了一个Hann窗型滤波器,并使用freqz函数计算其频率响应。滤波器设计完成后,作者对原始信号进行卷积操作,得到滤波后的信号。最后,通过FFT和fftshift函数计算滤波后信号的频谱,展示了滤波前后信号在时域和频域的变化。通过这些步骤,文章提供了一个直观的MATLAB数字带通滤波器实现过程。

如何用自己设计好的滤波器对频谱滤波 matlab
您可以通过基本的滤波器积木块---二阶通用滤波器传递函数,推导出最通用的滤波器类型:低通、带通、高通、帯阻和椭圆型滤波器。采用MATLAB设计滤波器,使原来非常繁琐复杂的程序设计变成了简单的函数调用,为滤波器的设和实现开辟了广阔的天地,尤其是Matlab工具箱使各个领域的研究人员可以直观方便地进行科...

图片中有摩尔波纹,用MATLAB怎么处理掉???
1、打开Photoshop后,打开你想要改变的图像,然后选择图层并选择线性光。2、一旦你完成了上一步,反向CTRL + I在复制的层。3、然后,保留其他高对比度,并适当调整参数。4、完成上一步后,应用滤镜-模糊-高斯模糊,并适当调整参数。5、调整前景色为黑色,使用画笔工具在你想要保持清晰的区域上作画。6...

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

matlab:一张彩图,经处理用plot()函数产生如下的波形图,如何对这幅序列...
你可以试试看求信号的数据的fft(快速傅立叶变换),然后画出频域的图像。看看你噪声的频率是在那个范围内。你的信号的频率不是很高,噪声的频率应该高于你信号的频率。再根据你信号的频率添加一个低通滤波器,将高频噪声信号滤除。matlab自带滤波器的设计程序,图形界面非常好,使用简单。

相似回答