您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字图像处理实验指导书_贵州大学
计算机科学与信息学院《数字图像处理》实验指导书适用专业:信息安全、网络工程、计算机贵州大学二O一三年五月前言本指导书是根据数字图像处理教学大纲和实验大纲编写的,在教学过程中指导学生实验时使用。运用MATLAB软件平台,结合图像处理工具箱,对图像处理相关算法进行编程和实现。通过学生上机操作实践与教师指导,使学生深入理解和掌握数字图像处理的技术和方法,增强处理实际问题的能力。考虑到《数字图像处理》课程的自身特点,以及软件的升级更新性,本实验指导书具有适应性。本实验指导书主要适用于计算机科学与信息学院的各个相关专业。目录实验一图像基本操作....................................................................................................................4实验二图像增强............................................................................................................................7实验三图像分割..........................................................................................................................11实验四汽车牌照自动识别.............................................................................................................16实验报告的基本内容及要求..........................................................................................................18贵州大学实验报告..........................................................................................................................194实验一图像基本操作实验学时:2实验类型:验证实验要求:必做一、实验目的利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。1.熟悉图像矩阵的基本操作2.掌握图像数据类型转换及图像类型转换3.掌握图像文件的读写4.掌握图像及灰度图像直方图的显示5.掌握图像缩放和旋转二、实验原理和方法1.关于图像矩阵MATLAB中图像数据以矩阵方式的存储。所以有必要学会关于矩阵的操作,由于篇幅有限,这里只作简要的介绍。生成矩阵的函数有:eye生成单位矩阵ones全1阵zeros全零阵rand均匀随机阵randn正态随机阵2.图像数据类型及图像类型2.1图像数据类型转换MATLAB中图像数据矩阵的存储方式为双精度(double)类型即64位浮点数。而存储图像时MATLAB有时采用无符号整型(uint8)即图像矩阵中的每个数据占用一个字节。由于大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,所以运算时通常要将图像转换成double型。函数double将数据转换为双精度浮点类型,调用格式为:X64=double(x8)/2562.2图像类型及转换在MATLAB中,一幅图像可能包含一个数据矩阵,也可能有一个颜色映像表矩阵。MATLAB图像处理工具箱支持四种图像类型,其区别在于数据矩阵元素的不同含意。它们是:真彩色图像索引图像灰度图像二值图像(1)真彩色图像真彩色图像又称RGB图像,对于一个尺寸为M×N的彩色图像来说,在MATLAB中则存储为一个M×N×3的多维数组,像素的颜色由保存在像素位置上的R、G、B的强度值的组合来确定。如果需要知道图像A中(x,y)处的像素值,则可以使用这样的代码A(x,y,1:3)。(2)索引图像5MATLAB中的索引图像包含两个结构,一个是调色板,一个是图像数据矩阵。调色板是一个m×3的色彩映射矩阵,矩阵的每一行都代表一种色彩,与真彩色图像相同,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定的颜色。调色板通常和索引图像存在一起,当读入图像时,MATLAB同时加载调色板和图像。(3)灰度图像灰度图像就是只有强度信息,而没有颜色信息的图像。存储灰度图像只需要一个数据矩阵,矩阵的每个元素表示对应位置像素的灰度值,灰度图像的数据类型可以是doubIe类型,这时值域为[0,1],也可以uint8类刑,值域是[0,255]。(4)二值图像二值图像就是只有黑白两种值的图像,我们可以把它看作是特殊的灰度图像。二值图像只需一个数据矩阵来存储,每个像素只取0或1。MATLAB提供了若干函数,用于图像类型的转换,这些函数如下所示:rgb2gray将RGB图像转换成灰度图像Gray2ind将灰度图像转换成索引图像Im2bw设定阈值将图像转换为二值图像Im2double将图像数据阵列转换为double型Im2unit8将图像数据阵列转换为unit8型Im2unit16将图像数据阵列转换为unit16型Ind2gray将索引图像转换为灰度图像Ind2rgb将索引图像转换成真彩色图像2.3图像读写及显示MATLAB为用户提供了专门的函数以从图像格式的文件中读写图像数据。(1)图像文件的读取利用imread函数可以完成图像文件的读取操作,常见调用格式为:A=imread(FILENAME,FMT)其作用是将文件名用字符串FILENAME表示的、扩展名用字符串FMT(表示图像文件格式)表示的图像文件中的数据读到矩阵A中。如果FILENAME所指的为灰度图像,则A为M×N的二维矩阵;如果FILENAME所指的为RGB图像,则A为M×N×3的三维矩阵。(2)图像文件的写入(保存)利用imwrite函数完成图像的写入操作,也完全支持上述各种图像文件的格式,其常用的调用格式为:imwrite(A,FILENAME,FMT)(3)图像文件的显示MATLAB的图像处理工具箱提供了多种图像显示技术。例如,imshow函数可以直接从文件显示多种类型的图像;image函数可以将矩阵作为图像显示;colorbar函数可以用来显示颜色条。imshow函数是最常用的显示各种图像的函数,格式为:imshow(I,n);%显示灰度矩阵I,n设置显示的灰度值范围(级数),默认值为256。imshow(RGB)%显示真彩色图像imshowfilename%直接显示图像,但图像数据不在MATLAB的workspace中。可以将多幅图像显示在一个图形窗口中,达到这一目的有两种方法:一种方法是联合使用subplot函数和imshow函数,但此方法在一个图形窗口只能有一个调色板;另一种方法是联合使用subplot函数和subimage函数,此方法可在一个图形窗口内使用多个调色板。subplot函数将一个图形窗口划分为多个显示区域,其调用格式如下:6subplot(m,n,p)subplot函数将图形窗口划分为m(行)×n(列)个显示区域,并选择第p个区域作为当前绘图区。(4)灰度直方图的显示MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,imhist函数的语法格式为:imhist(I,n)imhist(X,MAP)其中imhist(I,n)计算和显示灰度图像I的直方图,n为指定的灰度级数目,默认值为256。imhist(X,MAP)计算和显示索引色图像X的直方图,map为调色板。3.图像的几何运算3.1图像的缩放MATLAB图像处理工具箱中的函数imresize可以用三种方法对图像进行插值缩放,如果不指定插值方法,则默认为最邻近插值法。imresize函数的语法格式为:B=imresize(A,m,method),返回原图像A的m倍放大的图像(m小于1时效果是缩小)。这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。B=imresize(A,[numrowsnumcols]),返回的图像B具有由[numrowsnumcols]指定的行、列数。3.2图像的旋转在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法。imrotate的语法格式为:B=imrotate(A,angle,method)函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。一般说来旋转后的图像会比原图大,超出原图部分值为0。三、实验内容和步骤练习图像的读取、显示和保存图像数据,步骤如下:(1)使用命令figure(1)开辟一个显示窗口(2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示RGB图像、二值图像和灰度图像,注上文字标题。(3)保存转换后的灰度图像和二值图像(4)在同一个窗口显示转换后的灰度图像的直方图(5)将原RGB图像的R、G、B三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R、G、B分量的不同之处。(6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;(7)图像顺时针旋转30度,插值方法使用三种不同方法,在figure(3)中显示旋转后的图像并比较结果有什么不同。四、实验报告基本内容详见附件。7实验二图像增强实验学时:2实验类型:验证实验要求:必做一、实验目的熟悉数字图像增强的一般方法,包括:1.掌握空域变换增强的原理、方法2.掌握灰度变换的图像增强方法二、实验原理和方法术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。空间域处理方法分为两种:灰度级变换、空间滤波。空间域技术直接对像素进行操作,其表达式为g(x,y)=T[f(x,y)]其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域,。此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。T应用于每个位置(x,y),以便在该位置得到输出图像g。在计算(x,y)处的g值时,只使用该领域的像素。灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像时,这两个术语可以互换。由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。1.空间域滤波1.1噪声模拟图像平滑滤波主要是针对图像的各种噪声而言的,因此需要模拟数字图像的各种噪声来分析滤波效果。MATLAB的图像处理工具箱提供了imnoise函数,可以用该函数给图像添加不同种类噪声,其语法格式为:J=imnoise(I,type,parameters)参数Type、parameters对应的噪声类型如下:Typeparameters说明Gaussianm,v均值为m,方差为v的高斯噪声LocalvarV均值为0,方差为v的高斯白噪声Possi
本文标题:数字图像处理实验指导书_贵州大学
链接地址:https://www.777doc.com/doc-2425057 .html