实验四噪声图像的复原

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四噪声图像的复原

-、运动模糊与维纳滤波

1•实验方式

通过对图像添加运动模糊模拟实际拍照的延时效应,并且利用维纳滤波方式对图像进行滤波,观察维纳滤波对运动模糊的过滤效果,并对照其他几种滤波方式对运动模糊的影响。

实验代码:

close all;clear all;clc;

i=imread('E:\Matlabimage\book.jpg');

匸rgb2gray(i);

I = im2double(l);

LEN = 21;

THETA = 11;

PSF = fspecial('motion', LEN, THETA);

blurred = imfilter(I, PSF, 'conv', 'circular');

wnr2 = dec onvwn r(blurred, PSF);

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

subplot(2,2,2);imshow(l);title('灰度图') subplot(2,2,3);imshow(blurred);title('运动模糊图像') subplot(2,2,4);imshow(wnr2);title('恢复图像')

代码解释:程序首先读取一幅JPG格式的彩色图片,然后将此图片转化为双精

度灰度图片,然后产生运动模糊算子PSF,其中参数LEN和THETA表示摄像物体逆时针方向一THETA方向运动了LEN个像素,并且通过imfilter实现运动模糊效果,将返回的结果放入blurred,然后通过deconvwnr实现滤波,并将滤波前后的图像显示出来。

实验结果:

欢迎下载 2 二、利用MATLAB 实现频域滤波的程序

1、频域sobel 滤波

实验根据公式设计高通或低通滤波器对图像进行处理,并观察频域滤波的效果 实验代码:

close all;clear all;clc;

f=imread('camerama n.tif);

F=fft2(f); %对图像进行傅立叶变换

%对变换后图像进行对数变化,并对其坐标平移,使其中心化

%将频谱图像标度在0-256的范围内

%显示频谱图像

%产生空间‘ sobe '模版

%查看相应频域滤波器的图像 %产生滤波时所需大小的矩阵

S=fftshift(log(1+abs(F)));

S=gscale(S); figure,imshow(S) h=fspecial('sobel'); figure;freqz2(h) PQ=paddedsize(size (f));

几种滤波方式对运动模糊的滤除效果对比:

运动模糊+维纳滤波: 运动模糊+中值滤波:

运动模糊+平均值滤波

由对比结果可知维纳滤波对运动模糊有很好的处理效果。

H=freqz2(h,PQ(1),PQ(2)); %产生频域中的‘ sobe'滤波器

H仁ifftshift(H); %重排数据序列,使得原点位于频率矩阵的左上角

figure,imshow(abs(H),[]),title('abs(H)'); % 以图形形式显示滤波器

figure,imshow(abs(H1),[]),title('abs(H1)');

gs=imfilter(double(f),h); %用模版h进行空域滤波

gf=dftfilt(f,H1); %用滤波器对图像进行频域滤波

figure,imshow(gs,[]),title('gs');

figure,imshow(gf,[]),title('gf);

figure,imshow(abs(gs),[]),title('abs(gs)'); figure,imshow(abs(gf),[]),title('abs(gf)');

代码解释:程序先读入一幅灰度图像,然后进行傅里叶变换,在对变换后的图像进行对数变换改变频谱F的幅度范围,然后对变化后的图像进行平移,将低频部分移到频谱中心,再将频谱转化为双精度显示出来,然后利用fspecial函数产生sobel模板然后显示出频域滤波器的图像,再利用paddedsize产生滤波器所需要的矩阵,再利用此滤波器产生频域的sobel滤波器,然后绘出此频域滤波器,然

后再分别对同一幅图像进行空域滤波与频域滤波,并将滤波后的图像显示出来对比滤波效果。

实验结果:

变换后的频谱:频域滤波器图像

:

频域sobel滤波器:

'j :- d k *• -、.•弐亠山、总L kJ | 口

平移后的滤波器:

欢迎下载4

空域滤波结果: 频域滤波结果:

欢迎下载 5

实验结论:由实验结果可知空域滤波与频域滤波结果相似,可以分别出图

像中具有一定特征的图像的一部分,并且对滤波后的图像取振幅可以用于图像的 边沿提取和锐化

2、高斯高通滤波:

说明:利用高斯高通滤波器对图像进行处理,并分析高斯高通滤波器对图像的影 响。 实验代码:

f=imread('eight.tif); %读取图片

PQ=paddedsize(size(f)); %产生滤波时所需大小的矩阵 D0=0.05*PQ(1); %设定高斯高通滤波器的阈值

H=hpfilte('gaussia n',PQ(1),PQ(2),D0);

% 产生高斯高通滤波器 g=dftfilt(f,H);

%对图像进行滤波 figure,imshow(f)

% 显示原图像 figure,imshow(g,[]) %显示滤波后图像

代码解释:实验先读入一幅灰度图像,然后产生滤波矩阵和阈值,在对图像进行 高斯高

通滤波,再将滤波后的图像显示出来,观察滤波效果。

对空域滤波后的图像振幅: 频域滤波后的振幅:

相关文档
最新文档