ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:108.01KB ,
资源ID:4720300      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4720300.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字图象处理实验指导.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字图象处理实验指导.docx

1、数字图象处理实验指导数字图像处理实验指导计算科学与数学系目录目录 1数字图像处理实验教学大纲 2数字图像处理实验考核大纲 3实验一 Matlab语言、数字图象基本操作 4一、实验目的 4二、实验原理 4三、实验要求 10实验二 图像运算 11一、实验目的与要求 11二、实验原理与功能 11三 实验设计例子与调试 12四、实验内容与要求 15实验三 傅立叶变换及图象的频域处理 17一、实验目的 17二、实验原理 17三、实验要求 19实验四 图像的空域滤波 20一、实验目的 20二、实验原理 20三、实验内容与要求 24实验五 二值形态学操作 26一、实验目的 265二、原理 26三、练习 27

2、实验六 图像的边缘检测 28一、实验目的 28二、实验原理 28三、实验要求 29实验七 图像编码 30一 实验目的 30二 实验原理 30三、实验要求 30数字图像处理实验教学大纲课程类别:选修课课程代码 :XZ7173实验学时:12上机学时:12 学 分:适用专业:信息与计算实验中心(室):7系机房一、实验目的与任务 进一步了解和掌握数字图像处理的基本原理和方法,巩固对数字图像处理基本原理与方法的掌握。二、实验教学的基本要求 掌握MATLAB语言或C语言完成和实现图像处理的常见方法和基本原理。要求完成必选实验。三、实验内容与学时分配序号实验项目时数每组人数内容提要实验性质要求验证设计综合演

3、示必做选做1环境语言与图像处理基本操作2编程环境语言基本知识图像处理的基本操作2图像运算2点运算 代数运算 几何运算 的基本操作与综合运用3傅里叶变换及图像的频域处理4FFt及其逆变换的实现图像的低通滤波器4图像空域滤波2图像空域滤波的原理和方法5二值形态学操作2形态学基本运算,膨胀和腐蚀的Matlab实现6图像边缘检测2图像边缘提取的基本方法7图像编码2常见编码算法四、考核方法及成绩评定考核方式:考查。成绩: 各次实验成绩进行综合评定。五、实验指导书自编指导书,实验标题与顺序不必拘泥于表中所列。 数字图像处理实验考核大纲课程类别:选修课课程代码:实验学时:12 上机学时:12学 分:1 考核

4、类别:考试 考核 适用专业:信息与计算实验中心(室):7系机房一、实验考试(考核)目的: 了解学生对有关图像处理的概念、基本原理、方法与技术的掌握情况,测试学生能力培养和技能形成情况.二、实验主要培养的能力与技能: 图像处理的基本方法与原理掌握和运用能力,正确分析问题,解决问题的能力.三、实验考试(考核)内容: 图像变换.、图像分割、图像恢复与校正、图像特征提取等相关知识的基本方法与应用。四、实验主要使用仪器: 计算机.五、实验考试(考核)的方式与步骤: 各次实验过程与实验报告.六、实验考试(考核)评分标准: 各次实验采用百分制,最终评定成绩为各次评定成绩的平均成绩.七、参考资料:Matlab

5、应用图像处理 徐飞等编著 西安电子科技大学数字图像处理 Castleman 朱志刚等翻译 电子工业出版社实验一 Matlab语言、数字图象基本操作一、实验目的1、复习MATLAB语言的基本用法;2、掌握MATLAB语言中图象数据与信息的读取方法;3、掌握在MATLAB中绘制灰度直方图的方法,了解灰度直方图的均衡化的方法。二、实验原理MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。MATLAB软件具有很强的开放性和适用性。在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox)。

6、目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱(Toolbox)家族中有自己的一席之地。在实验中我们主要用到MATLAB提供图象处理工具箱(Image Processing Toolbox)。1、MATLAB与数字图像处理MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论

7、上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成MN样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它

8、的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。2、MATLAB语言的基本操作MATLAB语言是一种运算纸型的运算语言,其特点就是与平时在运算纸上书写运算的形式相同,这使得它成为一种比较容易掌握的语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于C语言,只要有一点C语言基础的人可以很快掌握。针对数字图象处理的需要,可以重点掌握以下几个内容:矩阵、向量的输入和操作(包括如何

9、输入一个矩阵,如何产生一个全零全一的矩阵,如何对一个矩阵的行列元素进行读取、写入);矩阵与向量的基本运算(包括加、减、点乘等)以下主要介绍一下如何读取矩阵的指定行或指定列,举例说明:x=4:6%产生一个一维数组,范围从4到6,步长为1x = 4 5 6插入:通过对x进行插入运算创建矩阵A A=x-3;x;x+3 %当然也可以用别的方法产生A矩阵此处只作为示例A = 1 2 3 4 5 6 7 8 9提取:提取A的前两行和后两列形成矩阵C。 C=A(1:2,2:3)C = 2 3 5 6置零:将矩阵A 的第二行第二列的元素置零 A(2,2)=0A = 1 2 3 4 0 6 7 8 9将矩阵A的

10、第一列全置1A(:,1)=1A = 1 2 3 1 0 6 1 8 9强调一下矩阵的乘法与矩阵的点乘的不同,举例说明:A=eye(2) %产生二维单位矩阵A = 1 0 0 1 B=1,2;3,4 %直接法输入矩阵B = 1 2 3 4 A+B%求A与B的和(符合矩阵求和原则)ans = 2 2 3 5 A.*B %求A与B的点积(即两矩阵中对应元素分别相乘ans = 1 0 0 4 A*B %求A与B的乘积(符合矩阵乘积原则A的列数与B的行数相等)ans = 1 23 4注意:请大家在E盘建一个目录(imp),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File-S

11、et Path-Tool-Add Path3、MATLAB中图象数据的读取A、 imreadimread函数用于读入各种图象文件,其一般的用法为X,MAP=imread(filename,fmt)其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。例:X,MAP=imread(flowers.tif,tif);例: X,MAP=imread(canoe.tif)B、 imwriteimwrite函数用于输出图象,其语法格式为:imwrite(X,map,filename,fmt)imwrite(X,map,filenam

12、e,fmt)按照fmt指定的格式将图象数据矩阵X和调色板map写入文件filename。C、 imfinfoimfinfo函数用于读取图象文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图象的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图象的类型等。例:imfinfo(rice.tif)ans = Filename: C:MATLAB6p5toolboximagesimdemosrice.tif FileModDate: 26-O

13、ct-1996 06:11:58 FileSize: 65966 Format: tif FormatVersion: Width: 256 Height: 256 BitDepth: 8 ColorType: grayscale FormatSignature: 73 73 42 0 ByteOrder: little-endian NewSubfileType: 0 BitsPerSample: 8 Compression: UncompressedPhotometricInterpretation: BlackIsZero StripOffsets: 8x1 double Samples

14、PerPixel: 1 RowsPerStrip: 32 StripByteCounts: 8x1 double XResolution: 72 YResolution: 72 ResolutionUnit: Inch Colormap: PlanarConfiguration: Chunky TileWidth: TileLength: TileOffsets: TileByteCounts: Orientation: 1 FillOrder: 1GrayResponseUnit: 0.0100 MaxSampleValue: 255 MinSampleValue: 0 Thresholdi

15、ng: 1ImageDescription: 1x166 char4、MATLAB中图象文件的显示imshowimshow函数是最常用的显示各种图象的函数,其语法如下:imshow(X,map)其中X是图象数据矩阵,map是其对应的颜色矩阵,若进行图象处理后不知道图象数据的值域可以用代替map。需要显示多幅图象时,可以使用figure语句,它的功能就是重新打开一个图象显示窗口。例:I=imread(rice.tif);Imshow(I);J=imread(flowers.tif);figure,imshow(J);figure;imshow eight.tif或:x,map=imread(ca

16、noe.tif);figure;imshow(x);figure;imshow(x,map)5、MATLAB中灰度直方图的显示MATLAB图象处理工具箱提供了imhist函数来计算和显示图象的直方图,imhist函数的语法格式为:imhist(I,n)imhist(X,map)其中imhist(I,n)计算和显示灰度图象I的直方图,n为指定的灰度级数目,默认值为256。imhist(X,map)计算和显示索引色图象X的直方图,map为调色板。例:I = imread(rice.tif);imshow(I)figure, imhist(I)6、对比度增强如果原图象f(x,y)的灰度范围是m,M,

17、我们希望调整后的图象g(x,y)的灰度范围是n,N,那么下述变换,就可以实现这一要求。MATLAB图象处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度增强。Imadjust函数的语法格式为:J = imadjust(I,low_in high_in,low_out high_out)J = imadjust(I,low_in high_in,low_out high_out)返回图象I经过直方图调整后的图象J,low_in high_in为原图象中要变换的灰度范围,low_out high_out指定了变换后的灰度范围。例:I = imread(pout.tif);J =

18、imadjust(I,0.3 0.7,);imshow(I), figure, imshow(J) 7、图像类型转换例如x,map=imread(trees.tif);I=ind2gray(x,map);Subplot(1,2,1);imshow(x,map);Subplot(1,2,2);imshow(I);三、实验内容与要求copy图像文件eight.tif、canoe.tif和flowers.tif到MATLAB目录下work文件夹中。1、 将MATLAB目录下work文件夹中的canoe.tif图像文件读出.用imread,imfinfo等命令,观察图像数据,验证图像数据长度。了解一下

19、数字图象在MATLAB中的处理就是处理一个矩阵。将这个图象显示出来(用imshow),尝试修改map颜色矩阵的值,再将图象显示出来,观察图象颜色的变化。2、 将MATLAB目录下work文件夹中的eight.tif图象文件读出,显示它的图象及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函数将它的灰度值调整到0,1之间,并观察调整后的图象与原图象的差别,调整后的灰度直方图与原灰度直方图的区别。3、 显示fowers.tif文件的图像信息,并用imshow命令把图像显示出来。4、 将eight.tif转换为二值图像,canoe.tif转换为灰度图像和真彩图像,flowers转换化

20、索引图像和灰度图像。5、 设计实验步骤,完成实验报告。实验二 图像运算一、实验目的与要求 理解图像点运算、代数运算、几何运算的基本定义和常见方法; 掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法; 掌握在MATLAB中进行插值的方法 运用MATLAB语言进行图像的插值缩放和插值旋转 进一步熟悉了解MATLAB语言的应用。二、实验原理与功能 点运算是通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换.可以表示为B(x,y)=f(A(x,y).进行逐点运算,输入映射为输出,不改变图像像素的空间关系.代数运算是指对两幅输入图像进行点对点的加、减

21、、乘或除运算而得到输出图像的运算。对于相加和相乘的情形,可能不止有两幅图像参加运算。在一般情况下,输入情况之一可能为常数。四种图像处理代数运算的数学表达式如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y) 其中A(x,y)和B(x,y)为输入图像,而C(x,y)为输出图像。还可以通过适当的组合形成涉及几幅图像的复合代数运算方程。在MATLAB中,我们可以用函数简单的得到数字图像的图像数据矩阵(即A(x,y)和B(x,y)),有了这些矩阵后我们只要适当的设计代数运算的形式并写出方程

22、,就可以得到一个输出图像的矩阵(即C(x,y))图像相加的一个重要应用是对同一场景的多幅图像求平均值。这点被经常用来有效的降低加性随机噪声的影响。在求平均值的过程中,图像的静止部分不会改变,而对每一幅图像,各不相同的噪声图案则过累积很慢。对M幅图像进行平均,使图像中每一点的平方信噪比提高了M倍幅度信噪比是功率信噪比的平方根,因此达到了提高信噪比降低噪声的作用。 几何运算可改变图像中各物体之间的空间关系。这种运算可以被看成是将(各)物体在图像内移动。一个几何运算需要两个独立的算法。首先,需要一个算法来定义空间变换本身,用它来描述每个像素如何从其初始位置“移动”到终止位置,即每个像素的“运动”。同

23、时,还需要一个用于灰度插值的算法,这是因为,在一般情况下,输入图像的位置坐标(x,y)为整数,而输出图像的位置坐标为非整数,反过来也如此。因此插值就是对变换之后的整数坐标位置的像素值进行估计。MATLAB提供了一些函数实现这些功能。插值是常用的数学运算,通常是利用曲线拟合的方法,通过离散的采样点建立一个连续函数来逼近真实的曲线,用这个重建的函数便可以求出任意位置的函数值。最近邻插值是最简便的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样点的值。最近邻插值是工具箱函数默认使用的插值方法,而且这种插值方法的运算量非常小。当图像中包含像素之间灰度级变化的细微结构时,最近邻

24、插值法会在图像中产生人工的痕迹。双线性插值法的输出像素值是它在输入图像中22领域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。双三次插值的插值核为三次函数,其插值邻域的大小为44。它的插值效果比较好,但相应的计算量也比较大。MATLAB图像处理工具箱中的函数imresize可以用上述的3种方法对图像进行插值缩放,如果不指定插值方法,则默认为最邻近插值法。Imresize函数的语法格式为:B = imresize(A,m,method)参数method用于指定插值的方法,可选用的值为nearest(最邻近法),bilinear(双线性插值),bicubic(双三

25、次插值),默认为nearest。B = imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是缩小)。三 实验设计例子与调试1 完成人为的往一幅图像中加入噪声,并通过多次相加求平均的方法消除所加入的噪声。在MATLAB中提供了给图像加入噪声的函数imnoiseimnoise的语法格式为J = imnoise(I,type)J = imnoise(I,type,parameters)其中J = imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。参数type和parameters用于确定噪声的类型和相应的参数。下面的命令是对图像eight.tif

26、分别加入高斯噪声、椒盐噪声和乘性噪声,其结果如图所示:例:I=imread(eight.tif);J1=imnoise(I,gaussian,0,0.02);J2=imnoise(I,salt & pepper,0.02);J3=imnoise(I,speckle,0.02);subplot(2,2,1),imshow(I),title(原图像);subplot(2,2,2),imshow(J1),title(加高斯噪声);subplot(2,2,3),imshow(J2),title(加椒盐噪声);subplot(2,2,4),imshow(J3),title(加乘性噪声);在上面的例子中使

27、用了一个函数subplot。其作用就是将多幅图像显示再同一幅图像显示对话框中。其语法格式为:subplot(m,n,p)其作用就是将一个图像显示对话框分成m行n列,并显示第p幅图像。在MATLAB程序语言中,分号的用处为不显示程序运算中的中间结果,这在一定程度上使系统运算的效率增高,因此在不需知道中间结果的情况下,可以用分号作为一个句子的结尾,而不显示该句运算的中间结果。代数运算中需要有若干幅带有随机噪声的图像数据,在这里我们运用MATLAB中的FOR循环语句来完成产生多幅带有噪声的图像数据及将这些图像数据进行相加运算。MATLAB中FOR END循环的用法如下:for end循环这种循环允许

28、一组命令以固定的和预定的次数重复,循环的一般形式为:for variable = expressionstatementsend举例如下:例:%一个简单的for循环的例子。for i=1:10;y(i)=i;end;y %显示y的结果y = 1 2 3 4 5 6 7 8 910为了得到最大的速度,在for循环被执行之前,应预先分配数组。例如前面所考虑的第一种情况,在for循环内每执行一次命令,向量y的维数增加1。这样就使得MATLAB每通过一次循环对y分配更多的内存,这当然要花费一定的时间。为了可以不执行这个步骤,for循环的例子应重写为:y=zeros(1,10);for i=1:10;y(i)=i;end;y在实际的对图像处理过程中,由于我们读出的图像是unit8型,而在MATLAB

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

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