09CK数字图像处理实验报告二msl.docx

上传人:b****7 文档编号:10549510 上传时间:2023-02-21 格式:DOCX 页数:18 大小:404.52KB
下载 相关 举报
09CK数字图像处理实验报告二msl.docx_第1页
第1页 / 共18页
09CK数字图像处理实验报告二msl.docx_第2页
第2页 / 共18页
09CK数字图像处理实验报告二msl.docx_第3页
第3页 / 共18页
09CK数字图像处理实验报告二msl.docx_第4页
第4页 / 共18页
09CK数字图像处理实验报告二msl.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

09CK数字图像处理实验报告二msl.docx

《09CK数字图像处理实验报告二msl.docx》由会员分享,可在线阅读,更多相关《09CK数字图像处理实验报告二msl.docx(18页珍藏版)》请在冰豆网上搜索。

09CK数字图像处理实验报告二msl.docx

09CK数字图像处理实验报告二msl

数字图像处理

实验报告二

 

2011/12/10

测控0901

林杰

实验2图像平滑实验

一、实验目的

1.通过实验掌握图像去噪的基本方法;

2.学会根据情况选用不同方法。

二、实验的硬件、软件平台

硬件:

计算机

软件:

操作系统:

WINDOWS7

应用软件:

MATLAB

三、实验内容及要求

1.实验内容

请在如下面方法中选择多个,完成图像去噪操作,并进行分析、比较。

(1)对静态场景的多幅图片取平均;

(2)空间域模板卷积(不同模板、不同尺寸);

(3)频域低通滤波器(不同滤波器模型、不同截止频率);

(4)中值滤波方法。

2.实验要求

(1)图片可根据需要选取;

(2)对不同方法和同一方法的不同参数的实验结果进行分析和比较,如空间域卷积模板可有高斯型模板、矩形模板、三角形模板和自己根据需求设计的模板等;模板大小可以是3×3,5×5,7×7或更大。

频域滤波可采用矩形或巴特沃斯等低通滤波器模型,截止频率也是可选的。

(3)分析比较不同方法的结果。

四、思考题

1.不同空间域卷积器模板的滤波效果有何不同?

2.空间域卷积器模板的大小的滤波效果有何影响?

3.用多幅图像代数平均的方法去噪对图像有何要求?

4.不同频域滤波器的效果有何不同?

五、实验报告要求

1.列出程序清单并进行功能注释;

2.说明不同方法去噪效果;

3.对去噪方法进行详细分析对比。

******************对静态场景的多幅图片取平均************************

实验代码如下

clc

clearall

a1=imread('lenna_noise1.bmp');%读入图片

a2=imread('lenna_noise2.bmp');

a3=imread('lenna_noise3.bmp');

a4=imread('lenna_noise4.bmp');

a5=imread('lenna_noise5.bmp');

a6=imread('lenna_noise6.bmp');

a7=imread('lenna_noise7.bmp');

a8=imread('lenna_noise8.bmp');

b1=double(a1)/255;%变换图像数据类型

b2=double(a2)/255;

b3=double(a3)/255;

b4=double(a4)/255;

b5=double(a5)/255;

b6=double(a6)/255;

b7=double(a7)/255;

b8=double(a8)/255;

c=(b1+b2+b3+b4+b5+b6+b7+b8)/8;%八幅图取平均

subplot(331),imshow(a1);%三行三列,显示图像1-8

subplot(332),imshow(a2);subplot(333),imshow(a3);subplot(334),imshow(a4);subplot(335),imshow(a5);

subplot(336),imshow(a6);subplot(337),imshow(a7);

subplot(338),imshow(a8);

subplot(339),imshow(c)%%显示平均后的图像

******************空间域模板卷积(不同模板、不同尺寸)***************

%%邻域模板

clc

clearall

i=imread('Panda_jiaoyan.bmp');%读入图像

i=double(i)/255;%变换数据类型

subplot(221);

imshow(i);%显示图像

title('原图像');h=1/5*[010;101;010];%定义4邻域平均模板

a=filter2(h,i);%进行滤波

subplot(222);

imshow(a);%显示图像

title('4邻域平均模板');

subplot(223);

h=1/12*[0110;1111;1111;0110];%定义8邻域平均模板

a=filter2(h,i);

imshow(a);title('8邻域平均模板');

subplot(224);

h=1/12*[01110;11111;11111;01110];%定义12邻域平均模板

a=filter2(h,i);

imshow(a);

title('12邻域平均模板')

%%高斯模板

clc

clearall%高斯模板

i=imread('Panda_jiaoyan.bmp');%读入图像

i=double(i)/255;%数值转换

subplot(231);

imshow(i);%显示图像%选用3*3的高斯模板

title('原图像(高斯模板)')

h=fspecial('gaussian');%产生预定义滤波器

%格式为b=fspecial(A,[m,n]);这里[m,n]是邻域大小,默认值为【3,3】

a=filter2(h,i);%对图像进行卷积滤波的函数格式:

A=filter2(h,B)

%其函数返回图像B经算子h滤波后的图像给A

subplot(232);imshow(a);title('3*3')

subplot(233);h=fspecial('gaussian',[55]);a=filter2(h,i);imshow(a);

title('5*5')%选用5*5的高斯模板

subplot(234);h=fspecial('gaussian',[77]);%选用7*7的高斯模板

a=filter2(h,i);imshow(a);title('7*7')

subplot(235);h=fspecial('gaussian',[99]);%选用9*9的高斯模板

a=filter2(h,i);imshow(a);title('9*9')

subplot(236);

h=fspecial('gaussian',[1111]);%选用11*11的高斯模板

a=filter2(h,i);imshow(a)

title('11*11')

加权模板

%加权模板

i=imread('Panda_jiaoyan.bmp');%读入图像

i=double(i)/255;%数据类型转换?

subplot(1,3,1);

imshow(i);%显示图像

title('原图像')

h=1/10*[111;121;111];%选用3*3的加权平均模板

a=filter2(h,i);

subplot(1,3,2);

imshow(a);

title('3*3的加权平均模板')

subplot(1,3,3);

h=1/48*[01210;12421;24842;12421;01210];%选用5*5的加权平均模板

a=filter2(h,i);

imshow(a);

title('5*5的加权平均模板')

******************中值滤波方法完成图像去噪操作***********************

clc

clearall%高斯模板

i=imread('Panda_jiaoyan.bmp');%读入图像

i=double(i)/255;%数值转换

subplot(221);

imshow(i);%显示图像

title('原图像(中值)')

a=medfilt2(i,[33]);%%中值滤波函数medfilt2,m行n列的滤波器

subplot(222);imshow(a);title('3*3')

subplot(223);

a=medfilt2(i,[55]);imshow(a);title('5*5')%选用5*5

subplot(224);a=medfilt2(i,[77]);imshow(a);

title('7*7')

******频域低通滤波器(不同滤波器模型、不同截止频率)完成图像去噪操作**

clc

clearall%高斯模板

i=imread('noise1.bmp');%读入图像

i=double(i)/255;%数值转换

figure;imshow(i);%显示图像

title('原图像')

figure;%%%理想低通滤波器

[f1,f2]=freqspace(25,'meshgrid');%频率响应的频率空间

Hd=zeros(25,25);

d=sqrt(f1.^2+f2.^2)<0.1;%低通滤波器的响应

Hd(d)=1;mesh(f1,f2,Hd)

figure;

a=filter2(Hd,i);

imshow(a);

%%截止频率为20Hz

i=imread('noise1.bmp');%读入图像

subplot(2,3,1);%显示2行3列第一幅图像

imshow(i);%显示图像

a=fft2(double(i));%进行傅里叶变换

subplot(2,3,2);%显示2行3列第二幅图像

imshow(abs(a),[]);%显示实数部分

s=log(1+abs(a));%进行对数运算,降低灰度值

subplot(2,3,3);%显示2行3列第三幅图像

imshow(abs(s),[]);%显示降低灰度后的傅里叶频谱

fc=fftshift(a);%把频谱移中

s=log(a+abs(fc));%把移中的频谱进行对数运算,提高灰度

subplot(2,3,4);%显示2行3列第四幅图像

imshow(abs(s),[]);%显示图像

[m,n]=size(fc);%获取频谱图大小

fori=1:

m%进行点运算

forj=1:

n%计算频率平面道远点的距离

u=floor(i-m/2);v=floor(j-n/2);d=(u^2+v^2)^0.5;

h(i,j)=1/(1+(d/20)^2);%定义巴特沃斯低通滤波器

fe(i,j)=h(i,j)*fc(i,j);%进行巴特沃斯低通滤波

end

end

[m,n]=size(fc);%获取频谱图大小

fori=1:

m%进行点运算

forj=1:

n

u=floor(i-m/2);%计算频率平面道远点的距离

v=floor(j-n/2);

d=(u^2+v^2)^0.5;

ifd<20%定义理想低通滤波器

h(i,j)=1;

else

h(i,j)=0;

end

fa(i,j)=h(i,j)*fc(i,j);

end

end

FF=ifftshift(fe);%对经巴特沃斯处理的频谱进行逆移中

ff=real(ifft2(FF));%取傅里叶逆变换的实数部分

AA=ifftshift(fa);%对经理想滤波处理的频谱进行逆移中

aa=real(ifft2(AA));%取傅里叶逆变换的实数部分

subplot(2,3,5);%显示2行3列第五幅图像

imshow(uint8(ff));%显示图像

subplot(2,3,6);%显示2行3列第六幅图像

imshow(uint8(aa));%显示图像

%%%%截止频率为70

i=imread('noise1.bmp');%读入图像

subplot(2,3,1);%显示2行3列第一幅图像

imshow(i);%显示图像

a=fft2(double(i));%进行傅里叶变换

subplot(2,3,2);%显示2行3列第二幅图像

imshow(abs(a),[]);%显示实数部分

s=log(1+abs(a));%进行对数运算,降低灰度值

subplot(2,3,3);%显示2行3列第三幅图像%获取频谱图大小

imshow(abs(s),[]);%显示降低灰度后的傅里叶频谱

fc=fftshift(a);%把频谱移中

s=log(a+abs(fc));%把移中的频谱进行对数运算,提高灰度

subplot(2,3,4);%显示2行3列第四幅图像

imshow(abs(s),[]);%显示图像

[m,n]=size(fc);%获取频谱图大小

fori=1:

m%进行点运算

forj=1:

n

u=floor(i-m/2);%计算频率平面道远点的距离

v=floor(j-n/2);

d=(u^2+v^2)^0.5;

h(i,j)=1/(1+(d/80)^2);%定义巴特沃斯低通滤波器

fe(i,j)=h(i,j)*fc(i,j);%进行巴特沃斯低通滤波

end

end

[m,n]=size(fc);fori=1:

m%进行点运算

forj=1:

n

u=floor(i-m/2);%计算频率平面道远点的距离

v=floor(j-n/2);

d=(u^2+v^2)^0.5;

ifd<70%定义理想低通滤波器

h(i,j)=1;

else

h(i,j)=0;

end

fa(i,j)=h(i,j)*fc(i,j);

end

end

FF=ifftshift(fe);%对经巴特沃斯处理的频谱进行逆移中

ff=real(ifft2(FF));%取傅里叶逆变换的实数部分

AA=ifftshift(fa);%对经理想滤波处理的频谱进行逆移中

aa=real(ifft2(AA));%取傅里叶逆变换的实数部分

subplot(2,3,5);%显示2行3列第五幅图像

imshow(uint8(ff));%显示图像

subplot(2,3,6);%显示2行3列第六幅图像

imshow(uint8(aa));%显示图像

*************自定义滤波器*************************************

clc

clearall

i=imread('noise1.bmp');%读入图像

i=double(i)/255;%数值转换

figure;

[f1,f2]=freqspace(21,'meshgrid');%频率响应的频率空间

Hd=ones(21);

r=sqrt(f1.^2+f2.^2);

Hd((r<0.08)|(r>0.3))=0;%所需的滤波器

subplot(131),mesh(f1,f2,Hd)

win=fspecial('gaussian',21,2);%高斯滤波器

win=win./max(win(:

));%归一化

subplot(132),mesh(win)%高斯滤波器

h=fwind2(Hd,win);%产生的滤波器

subplot(133),freqz2(h)%产生滤波器的频率响应

figure;

subplot(121),

imshow(i);

title('原图像')

a=filter2(h,i);

subplot(122),

imshow(a);title('变换后')

*******************带通*********************************

clc

clearall

i=imread('noise1.bmp');%读入图像

i=double(i)/255;%数值转换

figure;%%%平流层抽样法设计二位带通滤波器

Hd=zeros(11,11);Hd(4:

8,4:

8)=1;

[f1,f2]=freqspace(11,'meshgrid');%频率响应的频率空间

subplot(221),mesh(f1,f2,Hd),%绘出所需的频率响应

axis([-11-1101.2]),colormap(jet(64))

h=fsamp2(Hd);%频率抽样法产生滤波器

subplot(222),freqz2(h,[3232]),%滤波器的频率响应

axis([-11-1101.2])

subplot(223)

imshow(i);

title('原图像')

subplot(224)

a=filter2(h,i);

imshow(a);title('带通变换后图像')

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1