实验四噪声图像的复原
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,[]) %显示滤波后图像
代码解释:实验先读入一幅灰度图像,然后产生滤波矩阵和阈值,在对图像进行 高斯高
通滤波,再将滤波后的图像显示出来,观察滤波效果。
对空域滤波后的图像振幅: 频域滤波后的振幅: