图像处理实验_第1页
图像处理实验_第2页
图像处理实验_第3页
图像处理实验_第4页
图像处理实验_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数字图像处理实验报告 班级: 学号:姓名: 实验一 数字图像基本操作及灰度调整一、实验目的: 掌握读、写图像的基本方法。掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。理解图像灰度变换处理在图像增强的作用。提高学生编程能力,巩固所学知识。2、 实验内容和要求:1.熟悉MATLAB语言中对图像数据读取,显示等基本函数,用Matlab读取和显示一幅灰度图像。 特别需要熟悉下列命令:imread()函数、imshow()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。2.绘制图像灰度直方图的方法,对图像进行均衡化处理。 请自己编程和调

2、用Matlab函数完成如下实验:1) 显示读入图像及其灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函数将它的灰度值调整到0,1之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。2) 对读入图像进行直方图均衡化处理,试比较与原图像的异同。3. 分段线性变换法,对图像进行灰度拉伸、对比度增强处理。 对原始图像进行如图所示的分段线性变换处理,试比较与直方图均衡化处理的异同。图1.1 分段线性变换函数三、实验步骤1. 熟悉MATLAB语言中对图像数据读取,显示等基本函数。将MATLAB目录下的pears.png图像文件读出,显示并作出直方图。I=imre

3、ad('pears.png');B=rgb2gray(I);subplot(2,2,1);imshow(B);subplot(2,2,2);imhist(B);axis tight图1.1 灰度化后图像与直方图2.用imadjust函数将它的灰度值调整到0,1之间,对应源代码如下:I=imread('pears.png');B=rgb2gray(I);C=imadjust(B,30/255;200/255,0 1);subplot(1,2,1);imshow(C);title(调整之后的图像);subplot(1,2,2);imhist(C);title(调整图

4、像之后的灰度直方图);图1.2调整灰度之后图像与直方图3. 对原始图像进行如图所示的分段线性变换处理:I=imread('pears.png');B=rgb2gray(I);subplot(2,2,1);imshow(B);title('均衡化前图像')subplot(2,2,2);imhist(B);axis tight;title('均衡化前的直方图')A=histeq(B);subplot(2,2,3);imshow(A);title('均衡化后图像')subplot(2,2,4);imhist(A);axis tight;

5、title('均衡化后的直方图')图1.3 均衡化I=imread('pears.png');B=rgb2gray(I);a=100;b=200;t=find(B<a);B(t)=B(t)*1.2;t=find(B>=a&B<b);B(t)=(B(t)-a)*0.7+a;t=find(B>=b&B<256);B(t)=(B(t)-b)*2+b;subplot(1,2,1);imshow(B);title('拉伸后图像')subplot(1,2,2);imhist(B);axis tight;title

6、('拉伸后的直方图')图1.4四、思考1. 直方图可以反映图像的那些特性?灰度直方图是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。直观地反映了图像像素在256个位置的深浅度,可以看出图像的对比度,以及图像的大部分像素点的分布范围,图像的明暗程度,图像的曝光度。2.试比较分段线性变换与直方图均衡化处理的异同。相同:都能够增强图像的对比度。不同:直方图均衡化:把原始图像的直方图变换成均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到了增强图像整体对比度的效果。分段线性变换:将原图像亮度值动态范围按线性关系(线性函数)变换到指定范围或

7、整个动态范围,突出感兴趣的目标或灰度区域,相对抑制不感兴趣的灰度区域。五、实验心得与收获本次试验是本人初次接触MATLAB,其中面临了不少困难,通过查阅文档,百度搜索,以及询问同学才将其完成。特别是第三部分的,多半是通过百度查询,至今仍存在部分疑问。不是特别理解。不过在本次学习过程中,本人初步理解到了MATLAB的一些运行命令及内部信息,具体如下:matlab最基本的命令,imread()读取图像;imwrite()写入图像;iminfo()图像信息;imshow()显示图像等等;图片在计算机内部是以矩阵形式存储的,对图片的处理既是对表示图片的相关矩阵的处理,进而到对矩阵内部的数据进行处理。如

8、何去查询rgb2gray等MATLAB自带的这些函数的使用及观察到使用不同函数对应的效果。均直方图衡化把原本分布不均的灰度直方图在整个灰度级别内均匀分布。增加图像的全局对比度,使得亮度可以更好地在直方图上分布。对图片进行线性变换可以增加其对比度,代码中可以用for循环控制,用线性函数对灰度调整。实验二 邻域平均法和中值滤波一、实验目的 图像在传输过程中,经常会受到各种噪声的干扰,在进行进一步的边缘检测和图像分割、特征提取、模式识别等处理之前,采用适当的方法尽量减少噪声是一个非常重要的预处理步骤。利用Matlab为给定图像添加噪声,掌握用邻域平均法和中值滤波法去除数字图像中噪声的处理过程。二、实

9、验内容对灰度图像加入椒盐噪声和高斯等噪声。掌握邻域平均法和中值滤波法的算法过程,借助于Matlab软件对添加不同种类和不同程度噪声的图像进行去噪处理,比较两种去除噪声算法的性能。1.给灰度图像分别加入椒盐噪声和高斯噪声并与前一张图显示在同一图像窗口中;2.分别对加入椒盐噪声和高斯噪声的图像采用邻域平均法和中值滤波法对有噪图像做处理,要求在同一窗口中显示结果。3.改变模板尺寸,试比较去噪效果的不同。4、 实验步骤1.给灰度图像分别加入椒盐噪声和高斯噪声A=imread('peppers.png');B=rgb2gray(A);figure;subplot(131);imshow(

10、B);title('原始图像');H=imnoise(B,'gaussian',0.02);subplot(132);imshow(H);title('高斯噪声');Q=imnoise(B,'salt & pepper',0.02);subplot(133);imshow(Q);title('椒盐噪声');图2.1 加入噪声2.分别对加入椒盐噪声和高斯噪声的图像采用邻域平均法和中值滤波法对有噪图像做处理M=fspecial('average',3);E=imfilter(H,M);F=imf

11、ilter(Q,M);figure;subplot(221);imshow(E);title('对高斯噪声均值滤波');subplot(222);imshow(F);title('对椒盐噪声均值滤波');G=medfilt2(H,3 3);H=medfilt2(Q,3 3);subplot(223);imshow(G);title('对高斯噪声中值滤波');subplot(224);imshow(H);title('对椒盐噪声中值滤波');图2.2比较邻域平均和中值滤波的效果3.改变模板尺寸,试比较去噪效果的不同。A=imread

12、('peppers.png');B=rgb2gray(A);figure;subplot(331);imshow(B);title('原始图像');H=imnoise(B,'gaussian',0.02);subplot(332);imshow(H);title('高斯噪声');Q=imnoise(B,'salt & pepper',0.02);subplot(333);imshow(Q);title('椒盐噪声');M1=fspecial('average',3);M2=f

13、special('average',5);M3=fspecial('average',7);E1=imfilter(H,M1);E2=imfilter(H,M2);E3=imfilter(H,M3);F1=imfilter(Q,M1);F2=imfilter(Q,M2);F3=imfilter(Q,M3);subplot(334);imshow(E1);title('高斯噪声3*3模板均值滤波');subplot(335);imshow(E2);title('高斯噪声5*5模板均值滤波');subplot(336);imshow(

14、E3);title('高斯噪声7*7模板均值滤波');subplot(337);imshow(F1);title('椒盐噪声3*3模板均值滤波');subplot(338);imshow(F2);title('椒盐噪声5*5模板均值滤波');subplot(339);imshow(F3);title('椒盐噪声7*7模板均值滤波');图2.2 模板改变对均值滤波的影响五、实验思考1、 比较邻域平均和中值滤波滤除高斯噪声和椒盐噪声的效果,分析其原因。邻域平均对滤除高斯噪声效果显著,中值滤波对滤除椒盐噪声效果好。高斯噪声是幅值近似正态

15、分布,但分布在每点像素上。因为正态分布的均值为0, 所以邻域平均滤波可以消除噪声。椒盐噪声是幅值近似相等但随机分布在不同位置上,图像中有干净点也有污染点 。因为噪声的均值不为0,所以均值滤波不能很好地去除噪声点。但是中值滤波刚好可以滤去椒盐噪声这些极端值,所以效果较好。2、 模板尺寸的选择对去噪效果的影响?模板尺寸选择的越大,相对应的对噪声的滤除效果越好,但是图像越模糊。 实验三:图像的几何变换一、实验目的:(1)学习几种常见的图像几何变换,并通过实验体会几何变换的效果;(2)掌握图像平移、旋转、缩放、剪切等几何变换的算法原理及编程实现;(3)掌握matlab编程环境中基本

16、的图像处理函数。3、 实验内容和要求:1.将自选灰度图像向右下方平移;2. 对自选灰度图像进行缩放,倍率分别为1.5和0.8。在缩放过程中对不能直接对应的位置应予以插值计算,分别采用最近邻插值、双线性插值法和三次线性插值法;3. 将自选灰度图像分别顺时针旋转45度、逆时针旋转45度,插值方法使用三种不同方法,显示旋转后的图像并比较结果有什么不同。 三、实验步骤1.将自选灰度图像向右下方平移:I=imread('trees.tif');rows=size(I,1);cols=size(I,2);movx=50;movy=50;for i=1:rows for j=1:cols Q

17、(i+movx,j+movy)=I(i,j); endendfigure(1);imshow(I);title('原始图片');figure;imshow(Q);title('平移之后的图片');图3.1 右下平移2.自选灰度图像进行缩放,倍率分别为1.5和0.8。I=imread('onion.png');figure;imshow(I);axis on;title('原图');A=imresize(I,a,'nearest');B=imresize(I,a,'bilinear');C=imres

18、ize(I,a,'bicubic');figure;imshow(A);axis on;title('最近邻插值');figure;imshow(B);axis on;title('双线性插值');figure;imshow(C);axis on;title('双三次插值');图3.2 放大1.5倍图3.3 缩小至0.8倍3. 将自选灰度图像分别顺时针旋转45度、逆时针旋转45度:I=imread('onion.png');figure;imshow(I);axis on;title('原图');A

19、=imrotate(I, a,'nearest');B=imrotate(I,a,'bilinear');C=imrotate(I,a,'bicubic');figure;imshow(A);axis on;title('最近邻插值');figure;imshow(B);axis on;title('双线性插值');figure;imshow(C);axis on;title('双三次插值');图3.4 逆时针旋转45度图3.5 顺时针旋转45度四、思考1. 比较不同插值方法的优缺点是什么?最近邻插

20、法质量最差,但是算法简单,速度快。双线性插值法质量好,但是需要较大的计算量才能完成。三线性插值法无论在质量上还是速度上,都介于两者之间。2.用imrotate对图像进行旋转时,如何设置参数实现旋转后图像仍保持原来的大小?设置函数imrotate时添加crop,B = imrotate(A,angle,method,crop),“crop”其作用是为了使输出图像和输入图像大小相同,可以看出当设置了该参数时,图像明显被裁减了,这是因为图像旋转后面积变大了,而该参数的设置使图像须保持原来的大小i,因而图像被裁减了,未设置该参数时默认大小可以显示整个旋转后的图像。五、实验心得与收获

21、经典的图像平移有两种算法,一种不会改变图像大小,另一种可以相应扩大图像。为了使图像能按照用户指定的水平平移量和垂直平移量移动,首先定义一个参数设定窗,并在图像平移菜单的事件处理函数中对此对话框进行定义,获取平移量。然后调用图像平移函数,从而实现将图像中所有的点(像素)都按照指定的平移量水平、垂直移动,平移后的图像上的每一点都可以在原图像中找到对应的点。旋转:程序将图像以图像中心为原点,按照用户设定的旋转角度进行旋转。和图像的平移一样,可以采用不同的算法,既可以把转出显示区域的部分图像截去,也可以扩大图像范围以显示所有图像。同时为了减小运算量,将图像以图像中心为坐标系原点进行旋转,而不是用户指定

22、的任意一点。缩放:程序将图像按用户设定的X轴方向的缩放比率和Y轴方向的缩放比率进行缩放。此操作产生的图像中的像素可能在原图中找不到相应的像素点,因此必须进行近似处理。实验四 图像的边缘检测一、实验原理 图像边缘信息在图像分析和人的视觉中十分重要,是图像识别中提取图像特征的一个重要属性。边缘检测在图像处理和对象识别领域中都是一个重要的基本问题。理论上边缘是图像上灰度变化最剧烈的地方,一阶微分图像的峰值处对应着图像的边缘点。根据数字图像的特点,处理图像过程中常采用差分来代替导数运算。图像梯度的重要性质是梯度的方向是在图像灰度最大变化率上,它恰好可以反映出图像边缘上的灰度变化。二、实验目的 结合数字

23、图像边缘检测的原理,根据Lapalace、Prewitt、Sobel、Roberts, 4种经典的图像边缘检测算子的工作原理及其给出的相应的模板,运用Matlab软件实现对图像的边缘检测。三、实验内容 对自选的同一幅图像利用上述的4种边缘检测算子,实现图像边缘检测操作,并比较不同检测算子的性能。三、实验步骤I=imread('onion.png');A=rgb2gray(I);F=double(A);B=edge(F,'log');C=edge(F,'Prewitt');D=edge(F,'Sobel');E=edge(F,

24、9;Roberts');G=edge(F,'canny');subplot(321);imshow(A);title('原图');subplot(322);imshow(B);title('Lapalace');subplot(323);imshow(C);title('Prewitt');subplot(324);imshow(D);title('Sobel');subplot(325);imshow(E);title('Roberts');subplot(326);imshow(G);t

25、itle('Canny');图4.1 未加噪声边缘检测算子检测效果I=imread('rice.png');F=imnoise(I,'gaussian',0.02);M=double(F);B=edge(M,'log');C=edge(M,'Prewitt');D=edge(M,'Sobel');E=edge(M,'Roberts');G=edge(M,'canny');subplot(331);imshow(I);title('原图');subplot(332);imshow(F);title('高斯噪声')

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论