数字图像处理实验报告Word格式文档下载.docx
《数字图像处理实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
closeall
I=imread('
Image1.png'
);
%读取标题为“Point2”的位图,并用“I”表示该图
j=rgb2gray(I);
%转为灰度图像,并用j表示
[l,r]=size(j);
%将j的行数返回到第一个输出变量l,将列数返回到第二个输出变量r
figure
(1);
%创建一个空的窗口
subplot(221);
%将窗口分成2行2列,并在第一个位置进行操作
imshow(j);
%显示图片j
title('
原图像'
%标题
form=1:
l%循环语句,行数m的值从1到l,下同
forn=1:
r
p(m,n)=j(m,n)*1.8;
%将j图中的每一个点的像素值乘以一个常数,得到的新像素以原来的位置构成图p
end
end
subplot(222);
imshow(p);
处理后图像'
);
subplot(2,2,3);
imhist(j);
%显示图像j的直方图
原图像直方图'
subplot(2,2,4);
imhist(p);
处理后图像直方图'
输出的图像:
图4
对比图像处理前后的直方图可知,原图的灰度范围较小。
图像均衡化处理后。
灰度级取值的动态范围扩大了,但灰度级减少了。
直方图变得更稀疏。
并且灰度级值整体增大了,即直方图整体向右平移了一段距离。
题目2%图2暗处细节分辨不清,使其能看清楚。
I2=imread('
Image2.png'
j2=rgb2gray(I2);
INFO2=imfinfo('
[l2,r2]=size(j2);
figure;
subplot(221)
imshow(j2)
原图'
)
fora=1:
l2
forb=1:
r2
q1(a,b)=j2(a,b)*1.2;
%q1(a,b)为将原图灰度值提高1.2倍
l2
r2
q2(a,b)=j2(a,b)*2;
%q2(a,b)为将原图灰度值提高2倍
l2%q3(a,b)自定义函数
ifj2(a,b)<
60
q3(a,b)=j2(a,b)*2.38;
elseifj2(a,b)>
=60
q3(a,b)=j2(a,b)*0.5263+120.7;
imshow(q1);
j(m,n)*1.2'
subplot(223);
imshow(q2);
j(m,n)*2'
subplot(224);
imshow(q3);
j(m,n)*自定义函数'
subplot(221),imhist(j2,64);
原图的直方图'
subplot(222),imhist(q1,64);
subplot(223),imhist(q2,64);
subplot(224),imhist(q3,64);
图5
图6
题目3%图3亮处细节分辨不清,使其能看清楚。
Image3.png'
q1(a,b)=j2(a,b)*0.9;
%q1(a,b)为将输出图像的灰度值缩小为原图的0.9倍
q2(a,b)=j2(a,b)*0.75;
%q2(a,b)为将输出图像的灰度值缩小为原图的0.75倍
q3(a,b)=j2(a,b)*0.75+25;
%q3(a,b)自定义的灰度值缩小函数
end
j(m,n)*0.9'
j(m,n)*0.75'
j(m,n)*0.75+25'
图7
图8
这三个实验所用的方法均是对图像进行点操作处理,特别是其中对于判定和循环的运用是解题的关键,即对点进行判定并只对满足条件的点进行处理。
思考题
1.答:
点操作可以扩大灰度值的范围。
并且可以改变某点灰度值的大小,实现增强或减弱图像亮度、增强对比度以及直方图均衡化处理。
2.答:
均衡化后的直方图不平坦是由于图像中各灰度级出现的概率不同。
均衡化后的直方图使灰度级分布具有均匀概率密度。
扩展了像素取值的动态范围,但减少了灰度级。
实验感想:
通过本次实验,对与图片的点操作处理和直方图处理有了更深刻的体会。
同时我也认识到了设定优化参数的不易。
实验项目图像平滑实验
实验2图像平滑实验
1.通过实验掌握图像去噪的基本方法;
2.学会根据情况选用不同方法。
计算机
操作系统:
WINDOWS2000
应用软件:
MATLAB
三、实验内容及要求
1.实验内容
请在如下面方法中选择多个,完成图像去噪操作,并进行分析、比较。
(1)对静态场景的多幅图片取平均;
(2)空间域模板卷积(不同模板、不同尺寸);
(3)频域低通滤波器(不同滤波器模型、不同截止频率);
(4)中值滤波方法。
2.实验要求
(1)图片可根据需要选取;
(2)对不同方法和同一方法的不同参数的实验结果进行分析和比较,如空间域卷积模板可有高斯型模板、矩形模板、三角形模板和自己根据需求设计的模板等;
模板大小可以是3×
3,5×
5,7×
7或更大。
频域滤波可采用矩形或巴特沃斯等低通滤波器模型,截止频率也是可选的。
(3)分析比较不同方法的结果。
1.不同空间域卷积器模板的滤波效果有何不同?
2.空间域卷积器模板的大小的滤波效果有何影响?
3.用多幅图像代数平均的方法去噪对图像有何要求?
4.不同频域滤波器的效果有何不同?
1.列出程序清单并进行功能注释;
2.说明不同方法去噪效果;
3.对去噪方法进行详细分析对比。
(1)对静态场景的多幅图片取平均:
%第一部分向Lenna.png加入8种不同的噪声
M=imread('
Lenna.png'
%读取一幅名为Lenna.png的图像
M=rgb2gray(M);
%转换为灰度值图像
subplot(3,3,1);
imshow(M);
%显示原始图像
original'
P1=imnoise(M,'
gaussian'
0.01);
%加入高斯躁声(噪声密度为0.01)
subplot(3,3,2);
imshow(P1);
%加入高斯躁声(噪声密度为0.01)后显示图像
gaussiannoise1'
P2=imnoise(M,'
salt&
pepper'
%加入椒盐躁声(噪声密度为0.01)
subplot(3,3,3);
imshow(P2);
%加入椒盐躁声(噪声密度为0.01)后显示图像
peppernoise1'
P3=imnoise(M,'
0.02);
%加入高斯躁声(噪声密度为0.02)
subplot(3,3,4);
imshow(P3);
%加入高斯躁声(噪声密度为0.02)后显示图像
gaussiannoise2'
P4=imnoise(M,'
%加入椒盐躁声(噪声密度为0.02)
subplot(3,3,5);
imshow(P4);
%加入椒盐躁声(噪声密度为0.02)后显示图像
peppernoise2'
P5=imnoise(M,'
0.03);
%加入高斯躁声(噪声密度为0.03)
subplot(3,3,6);
imshow(P5);
%加入高斯躁声(噪声密度为0.03)后显示图像
gaussiannoise3'
P6=imnoise(M,'
%加入椒盐躁声(噪声密度为0.03)
subplot(3,3,7);
imshow(P6);
%加入椒盐躁声(噪声密度为0.03)后显示图像
peppernoise3'
P7=imnoise(M,'
0.04);
%加入高斯躁声(噪声密度为0.04)
subplot(3,3,8);
imshow(P7);
%加入高斯躁声(噪声密度为0.04)后显示图像
gaussiannoise4'
P8=imnoise(M,'
%加入椒盐躁声(噪声密度为0.04)
subplot(3,3,9);
imshow(P8);
%加入椒盐躁声(噪声密度为0.04)后显示图像
peppernoise4'
imwrite(P1,'
lenna_noise1.png'
'
png'
%保存图像P1至P8
imwrite(P2,'
lenna_noise2.png'
imwrite(P3,'
lenna_noise3.png'
imwrite(P4,'
lenna_noise4.png'
imwrite(P5,'
lenna_noise5.png'
imwrite(P6,'
lenna_noise6.png'
imwrite(P7,'
lenna_noise7.png'
imwrite(P8,'
lenna_noise8.png'
图9
%第二部分对静态场景的多幅带有不同噪声的图片取平均
closeall;
a1=imread('
%读入图片
a2=imread('
a3=imread('
a4=imread('
a5=imread('
a6=imread('
a7=imread('
a8=imread('
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'
%三行三列,显示图像1-8
subplot(332),imshow(a2);
噪声2'
subplot(333),imshow(a3);
噪声3'
subplot(334),imshow(a4);
噪声4'
subplot(335),imshow(a5);
噪声5'
subplot(336),imshow(a6);
噪声6'
subplot(337),imshow(a7);
噪声7'
subplot(338),imshow(a8);
噪声8'
subplot(339),imshow(c)%显示平均后的图像
平均后的图像'
图10
原图像与经过平均处理的图像的对比:
图11
可以看到平均后得到的图像已经修复了噪声,但是仍有许多细节被损失了。
比如头发的细节几乎被抹掉。
我自己分析认为是主要是高斯噪声影响了结果,平均后得到的图像还有高斯噪声的痕迹。
(2)空间域模板卷积
%空间域模板卷积(不同模板、不同尺寸)
%第一组邻域模板
lenna_pepper.png'
%读入图像
I=double(I)/255;
%变换数据类型
imshow(I);
%显示图像
原图像(邻域模板)'
H=1/5*[010;
101;
010];
%定义4邻域平均模板
A=filter2(H,I);
%进行滤波
imshow(A);
4邻域平均模板'
H=1/12*[0110;
1111;
0110];
%定义8邻域平均模板
title('
8邻域平均模板'
H=1/12*[01110;
11111;
01110];
%定义12邻域平均模板
12邻域平均模板'
)
邻域模板输出的图像:
图12
可以发现,随着邻域模板的增大,原图中夹杂的椒盐噪声被抑制的更彻底。
个人认为8邻域平均模板的处理效果最好,12邻域平均模板的处理后,整幅照片灰度值偏高。
%第二组高斯模板
%读入图像
%数值转换
subplot(231);
%显示图像
原图像(高斯模板)'
H=fspecial('
[33]);
%产生预定义滤波器%选用3*3的高斯模板
%格式为b=fspecial(A,[m,n]);
[m,n]是邻域大小
%对图像进行卷积滤波的函数格式A=filter2(h,B)
%其函数返回图像B经算子h滤波后的图像给A
subplot(232);
imshow(A);
3*3的高斯模板'
subplot(233);
H=fspecial('
[55]);
%选用5*5的高斯模板
5*5的高斯模板'
subplot(234);
[77]);
%选用7*7的高斯模板
7*7的高斯模板'
subplot(235);
[99]);
%选用9*9的高斯模板
9*9的高斯模板'
subplot(236);
[1111]);
%选用11*11的高斯模板
11*11的高斯模板'
高斯模板输出的图像:
图13
通过观察发现,多种尺寸的高斯模板均无法去除椒盐噪声。
得到的输出结果与原图一直。
这个实验结果让我有了一个猜想,即高斯模板只适合处理高斯噪声
%第三组加权模板
%读入图像
%数据类型转换
subplot(1,3,1);
%显示图像
原图像(加权模板)'
H=1/10*[111;
121;
111];
%选用3*3的加权平均模板
subplot(1,3,2);
3*3的加权平均模板'
subplot(1,3,3);
H=1/48*[01210;
12421;
24842;
01210];
%选用5*5的加权平均模板
5*5的加权平均模板'
加权模板输出的图像:
图14
可以看到,这两种尺寸的加权平均模板的处理结果近似,都有效的滤去了原图中的椒盐噪声。
对比分析:
取上述各个模板中3*3模板(对应4邻域模板)进行比对,可以发现加权模板是效果最好的,有效的滤去了噪声,得到的图像的对比度和灰度值都与原图像相仿;
4邻域模板的效果其次,基本滤去了噪声,得到的图像的灰度值与原图像相比偏低,伴有一些细节上的损失;
高斯模板无效果,输出的图像与原图一致。
高斯模板对椒盐噪声的处理无效果,这个让我考虑了很久。
我不太明白为什么会没有效果。
我认为高斯模板应该会带来一些“负优化”,但是没有看到。
可能有时间我还得学习这些模板的相关算法,才能加以理解。
(3)频域低通滤波器(不同滤波器模型、不同截止频率)
%频域低通滤波器(不同滤波器模型、不同截止频率)
clc;
clearall;
I=imread('
f1=im2double(I);
F1=fft2(double(f1));
%傅里叶变换
F1=fftshift(F1);
%将变换的原点移到频率矩形的中心
[M,N]=size(f1);
f2=double(I);
F2=fft2(f2);
F2=fftshift(F2);
%理想低通滤波
D0=input('
输入截止频率'
H1=zeros(M,N);
fori=1:
M
forj=i:
N
if(sqrt(((i-M/2)^2+(j-N/2)^2))<
D0)
H1(i,j)=1;
H2=F1.*H1;
H2=ifftshift(H2);
H3=real(ifft2(H2));
%巴特沃斯低通滤波
n=input('
巴特沃斯滤波器的阶数n='
n1=fix(M/2);
n2=fix(N/2);
forj=1:
d=sqrt((i-n1)^2+(j-n2)^2);
B=1/(1+0.414*(d/D0)^(2*n));
B1(i,j)=B*F2(i,j);
B1=ifftshift(B1);
B2=ifft2(B1);
B3=uint8(real(B2));
%绘图
imshow(H3);
理想低通滤波'
imshow(B3);
巴特沃斯低通滤波'
当输入截止频率20
巴特沃斯滤波器的阶数n=2时
图15
当输入截止频率40
输出的图像