数字图像处理实验报告92805.docx
- 文档编号:30450792
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:32
- 大小:1.93MB
数字图像处理实验报告92805.docx
《数字图像处理实验报告92805.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告92805.docx(32页珍藏版)》请在冰豆网上搜索。
数字图像处理实验报告92805
实验报告
课程名称数字图像处理
实验项目点运算和直方图处理
实验仪器PC机MATLAB软件
系别
专业
班级/学号
学生姓名
实验日期
成绩
指导老师
实验1点运算和直方图处理
一、实验目的
1.掌握利用Matlab图像工具箱显示直方图的方法
2.掌握运用点操作进行图像处理的基本原理。
3.进一步理解利用点操作这一方法进行图像处理的特点。
4.掌握利用Matlab图像工具箱进行直方图均衡化的基本方法。
二、实验的硬件、软件平台
硬件:
计算机
软件:
MATLAB
三、实验内容及步骤
1.了解Matlab图像工具箱的使用。
2.利用Matlab图像工具箱对图像进行点操作,要求完成下列3个题目中的至少2个。
⑴图1灰度范围偏小,且灰度偏低,改正之。
⑵图2暗处细节分辨不清,使其能看清楚。
⑶图3亮处细节分辨不清,使其能看清楚。
图1图2图3
3.给出处理前后图像的直方图。
4.利用MatLab图像处理工具箱中函数对以上图像进行直方图均衡化操作,观察结果。
四、思考题
1.点操作能完成哪些图像增强功能?
2.直方图均衡化后直方图为何并不平坦?
为何灰度级会减少?
五、实验报告要求
1.对点操作的原理进行说明。
2.给出程序清单和注释。
3.对处理过程和结果进行分析(包括对处理前后图像的直方图的分析)。
题目1%图1灰度范围偏小,且灰度偏低,改正之。
方法:
像素点操作
clc
clearall
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);
title('处理后图像');
subplot(2,2,3);
imhist(j);%显示图像j的直方图
title('原图像直方图');
subplot(2,2,4);
imhist(p);
title('处理后图像直方图');
输出的图像:
图4
对比图像处理前后的直方图可知,原图的灰度范围较小。
图像均衡化处理后。
灰度级取值的动态范围扩大了,但灰度级减少了。
直方图变得更稀疏。
并且灰度级值整体增大了,即直方图整体向右平移了一段距离。
题目2%图2暗处细节分辨不清,使其能看清楚。
方法:
像素点操作
clc
clearall
closeall
I2=imread('Image2.png');
j2=rgb2gray(I2);
INFO2=imfinfo('Image2.png');
[l2,r2]=size(j2);
figure;
subplot(221)
imshow(j2)
title('原图')
fora=1:
l2
forb=1:
r2
q1(a,b)=j2(a,b)*1.2;%q1(a,b)为将原图灰度值提高1.2倍
end
end
fora=1:
l2
forb=1:
r2
q2(a,b)=j2(a,b)*2;%q2(a,b)为将原图灰度值提高2倍
end
end
fora=1:
l2%q3(a,b)自定义函数
forb=1:
r2
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;
end
end
end
end
subplot(222);
imshow(q1);
title('j(m,n)*1.2');
subplot(223);
imshow(q2);
title('j(m,n)*2');
subplot(224);
imshow(q3);
title('j(m,n)*自定义函数');
figure;
subplot(221),imhist(j2,64);title('原图的直方图');
subplot(222),imhist(q1,64);title('j(m,n)*1.2');
subplot(223),imhist(q2,64);title('j(m,n)*2');
subplot(224),imhist(q3,64);title('j(m,n)*自定义函数');
输出的图像:
图5
图6
题目3%图3亮处细节分辨不清,使其能看清楚。
方法:
像素点操作
clc
clearall
closeall
I2=imread('Image3.png');
j2=rgb2gray(I2);
INFO2=imfinfo('Image3.png');
[l2,r2]=size(j2);
figure;
subplot(221)
imshow(j2)
title('原图')
fora=1:
l2
forb=1:
r2
q1(a,b)=j2(a,b)*0.9;%q1(a,b)为将输出图像的灰度值缩小为原图的0.9倍
end
end
fora=1:
l2
forb=1:
r2
q2(a,b)=j2(a,b)*0.75;%q2(a,b)为将输出图像的灰度值缩小为原图的0.75倍
end
end
fora=1:
l2
forb=1:
r2
q3(a,b)=j2(a,b)*0.75+25;%q3(a,b)自定义的灰度值缩小函数
end
end
subplot(222);
imshow(q1);
title('j(m,n)*0.9');
subplot(223);
imshow(q2);
title('j(m,n)*0.75');
subplot(224);
imshow(q3);
title('j(m,n)*0.75+25');
figure;
subplot(221),imhist(j2,64);title('原图的直方图');
subplot(222),imhist(q1,64);title('j(m,n)*0.9');
subplot(223),imhist(q2,64);title('j(m,n)*0.75');
subplot(224),imhist(q3,64);title('j(m,n)*0.75+25');
图7
图8
这三个实验所用的方法均是对图像进行点操作处理,特别是其中对于判定和循环的运用是解题的关键,即对点进行判定并只对满足条件的点进行处理。
思考题
1.答:
点操作可以扩大灰度值的范围。
并且可以改变某点灰度值的大小,实现增强或减弱图像亮度、增强对比度以及直方图均衡化处理。
2.答:
均衡化后的直方图不平坦是由于图像中各灰度级出现的概率不同。
均衡化后的直方图使灰度级分布具有均匀概率密度。
扩展了像素取值的动态范围,但减少了灰度级。
实验感想:
通过本次实验,对与图片的点操作处理和直方图处理有了更深刻的体会。
同时我也认识到了设定优化参数的不易。
实验报告
课程名称数字图像处理
实验项目图像平滑实验
实验仪器PC机MATLAB软件
系别
专业
班级/学号
学生姓名
实验日期
成绩
指导老师
实验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种不同的噪声
clc
clearall
closeall
M=imread('Lenna.png');%读取一幅名为Lenna.png的图像
M=rgb2gray(M);%转换为灰度值图像
subplot(3,3,1);
imshow(M);%显示原始图像
title('original');
P1=imnoise(M,'gaussian',0.01);%加入高斯躁声(噪声密度为0.01)
subplot(3,3,2);
imshow(P1);%加入高斯躁声(噪声密度为0.01)后显示图像
title('gaussiannoise1');
P2=imnoise(M,'salt&pepper',0.01);%加入椒盐躁声(噪声密度为0.01)
subplot(3,3,3);
imshow(P2);%加入椒盐躁声(噪声密度为0.01)后显示图像
title('salt&peppernoise1');
P3=imnoise(M,'gaussian',0.02);%加入高斯躁声(噪声密度为0.02)
subplot(3,3,4);
imshow(P3);%加入高斯躁声(噪声密度为0.02)后显示图像
title('gaussiannoise2');
P4=imnoise(M,'salt&pepper',0.02);%加入椒盐躁声(噪声密度为0.02)
subplot(3,3,5);
imshow(P4);%加入椒盐躁声(噪声密度为0.02)后显示图像
title('salt&peppernoise2');
P5=imnoise(M,'gaussian',0.03);%加入高斯躁声(噪声密度为0.03)
subplot(3,3,6);
imshow(P5);%加入高斯躁声(噪声密度为0.03)后显示图像
title('gaussiannoise3');
P6=imnoise(M,'salt&pepper',0.03);%加入椒盐躁声(噪声密度为0.03)
subplot(3,3,7);
imshow(P6);%加入椒盐躁声(噪声密度为0.03)后显示图像
title('salt&peppernoise3');
P7=imnoise(M,'gaussian',0.04);%加入高斯躁声(噪声密度为0.04)
subplot(3,3,8);
imshow(P7);%加入高斯躁声(噪声密度为0.04)后显示图像
title('gaussiannoise4');
P8=imnoise(M,'salt&pepper',0.04);%加入椒盐躁声(噪声密度为0.04)
subplot(3,3,9);
imshow(P8);%加入椒盐躁声(噪声密度为0.04)后显示图像
title('salt&peppernoise4');
imwrite(P1,'lenna_noise1.png','png');%保存图像P1至P8
imwrite(P2,'lenna_noise2.png','png');
imwrite(P3,'lenna_noise3.png','png');
imwrite(P4,'lenna_noise4.png','png');
imwrite(P5,'lenna_noise5.png','png');
imwrite(P6,'lenna_noise6.png','png');
imwrite(P7,'lenna_noise7.png','png');
imwrite(P8,'lenna_noise8.png','png');
输出的图像:
图9
%第二部分对静态场景的多幅带有不同噪声的图片取平均
clc
clearall
closeall;
a1=imread('lenna_noise1.png');%读入图片
a2=imread('lenna_noise2.png');
a3=imread('lenna_noise3.png');
a4=imread('lenna_noise4.png');
a5=imread('lenna_noise5.png');
a6=imread('lenna_noise6.png');
a7=imread('lenna_noise7.png');
a8=imread('lenna_noise8.png');
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);title('噪声1');%三行三列,显示图像1-8
subplot(332),imshow(a2);title('噪声2');
subplot(333),imshow(a3);title('噪声3');
subplot(334),imshow(a4);title('噪声4');
subplot(335),imshow(a5);title('噪声5');
subplot(336),imshow(a6);title('噪声6');
subplot(337),imshow(a7);title('噪声7');
subplot(338),imshow(a8);title('噪声8');
subplot(339),imshow(c)%显示平均后的图像
title('平均后的图像');
输出的图像:
图10
原图像与经过平均处理的图像的对比:
图11
可以看到平均后得到的图像已经修复了噪声,但是仍有许多细节被损失了。
比如头发的细节几乎被抹掉。
我自己分析认为是主要是高斯噪声影响了结果,平均后得到的图像还有高斯噪声的痕迹。
(2)空间域模板卷积
%空间域模板卷积(不同模板、不同尺寸)
%第一组邻域模板
clc
clearall
closeall;
I=imread('lenna_pepper.png');%读入图像
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邻域平均模板')
邻域模板输出的图像:
图12
可以发现,随着邻域模板的增大,原图中夹杂的椒盐噪声被抑制的更彻底。
个人认为8邻域平均模板的处理效果最好,12邻域平均模板的处理后,整幅照片灰度值偏高。
%空间域模板卷积(不同模板、不同尺寸)
%第二组高斯模板
clc
clearall
closeall;
I=imread('lenna_pepper.png');%读入图像
I=double(I)/255;%数值转换
subplot(231);
imshow(I);%显示图像
title('原图像(高斯模板)')
H=fspecial('gaussian',[33]);%产生预定义滤波器%选用3*3的高斯模板
%格式为b=fspecial(A,[m,n]);[m,n]是邻域大小
A=filter2(H,I);%对图像进行卷积滤波的函数格式A=filter2(h,B)
%其函数返回图像B经算子h滤波后的图像给A
subplot(232);imshow(A);title('3*3的高斯模板')
subplot(233);H=fspecial('gaussian',[55]);%选用5*5的高斯模板
A=filter2(H,I);imshow(A);title('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的高斯模板')
高斯模板输出的图像:
图13
通过观察发现,多种尺寸的高斯模板均无法去除椒盐噪声。
得到的输出结果与原图一直。
这个实验结果让我有了一个猜想,即高斯模板只适合处理高斯噪声
%空间域模板卷积(不同模板、不同尺寸)
%第三组加权模板
clc
clearall
closeall;
I=imread('lenna_pepper.png');%读入图像
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的加权平均模板')
加权模板输出的图像:
图14
可以看到,这两种尺寸的加权平均模板的处理结果近似,都有效的滤去了原图中的椒盐噪声。
对比分析:
取上述各个模板中3*3模板(对应4邻域模板)进行比对,可以发现加权模板是效果最好的,有效的滤去了噪声,得到的图像的对比度和灰度值都与原图像相仿;4邻域模板的效果其次,基本滤去了噪声,得到的图像的灰度值与原图像相比偏低,伴有一些细节上的损失;高斯模板无效果,输出的图像与原图一致。
实验感想:
高斯模板对椒盐噪声的处理无效果,这个让我考虑了很久。
我不太明白为什么会没有效果。
我认为高斯模板应该会带来一些“负优化”,但是没有看到。
可能有时间我还得学习这些模板的相关算法,才能加以理解。
(3)频域低通滤波器(不同滤波器模型、不同截止频率)
%频域低通滤波器(不同滤波器模型、不同截止频率)
clc;
clearall;
closeall;
I=imread('lenna_pepper.png');
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)) H1(i,j)=1; end end end H2=F1.*H1; H2=ifftshift(H2); H3=real(ifft2(H2)); %巴特沃斯低通滤波 n=input('巴特沃斯滤波器的阶数n='); n1=fix(M/2); n2=fix(N/2); fori=1: M forj=1: N d=sqrt((i-n1)^2+(j-n2)^2); B=1/(1+0.414*(d/D0)^(2*n)); B1(i,j)=B*F2(i,j); end end B1=ifftshift(B1); B2=ifft2(B1); B3=uint8(real(B2)); %绘图 subplot(1,3,1);imshow(I);title('原图'); subplot(1,3,2);imshow(H3);title('理想低通滤波'); subplot(1,3,3);imshow(B3);title('巴特沃斯低通滤波'); 当输入截止频率20 巴特沃斯滤波器的阶数n=2时 输出的图像: 图15 当输入截止频率40 巴特沃斯
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实验 报告 92805