1、课程设计任务书学生姓名: 叶枫 专业班级: 通信 zy1201 班 指导教师: 姜宁 工作单位: 信息工程学院 题 目: 利用 MATLAB 仿真软件系统进行图像的数据分析 初始条件:1.MATLAB 软件。2.数字信号处理与图像处理基础知识。要求完成的主要任务: 读取图像并求出图像的最大值、最小值、均值、中值、和、标准差、两图像的协方差、相关系数等。课程设计的目的:1理论目的 课程设计的目的之一是为了巩固课堂理论学习,并能用所学理论知识正确分析信号处理的基本问题和解释信号处理的基本现象。2实践目的课程设计的目的之二是通过设计具体的图像信号变换掌握图像和信号处理的方法和步骤。时间安排:序号 阶
2、段内容 所需时间1 方案设计 2 天2 软件设计 2 天3 系统调试 1 天4 答辩 1 天合 计 6 天指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日2目 录摘 要 .3Abstract .41. Matlab 及课程设计所用函数简介 .51.1Matlab 简介 .51.2 课程设计所用函数简介 62.数据采集 92.1 MATLAB 的读取方法 93 图像数据统计处理 133.1 图像数据处理原理 .133.2 各像素点中最大值的获取 143.3 各像素点中最小值的获取 143.4 各像素点值的均值的获取 153.5 各像素点值的中值的获取 163.6 各像素点值的和的
3、获取 173.7 各像素点值的标准差的获取 183.8 各像素点值的方差的获取 193.9 两图中各像素点值的协方差的获取 203.10 两图的相对系数的获取 204.心得体会 22参考文献 .23武汉理工大学Matlab 课程设计课程设计3摘 要MATLAB 软件是矩阵实验室的简称,是美国 MathWorks 公司出品的商业数学软件,可用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,广泛用于数字信号分析,系统识别,时序分析与建模,神经网络、动态仿真等方面有着广泛的应用。MATLAB 因具有强大的图形处理功能、符号运算功能和数值计算功能,而被广泛应用。而且随着信息
4、时代和数字世界的到来,数字信号处理也已成为当今一门极其重要的学科和技术领域。目前数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。本次课程设计利用 MATLAB 软件进行图像的数据分析,包括读取图像并求出图像的最大值、最小值、均值、中值、和、标准差、两图像的协方差、相关系数等。关键词:MATLAB,数字信号处理,图像数据分析4AbstractMATLAB software MATLAB is Matrix lab (Matrix Laboratory) abbreviation,is the product of our company
5、MathWorks business mathematics software for algorithm development, data visualization, data analysis and numerical calculation of the senior technical calculation language and interactive environment, widely used in digital signal analysis,system identification, timing analysis and modeling, neural
6、network, dynamic simulation, etc in a wide range of applications.Because MATLAB has powerful graphics capabilities, symbolic computation and numerical functions, and is widely used.With the information age and the advent of the digital world, digital signal processing has become an extremely importa
7、nt disciplines and technical fields. Current digital signal processing in communications, voice, image, automatic control, radar, military, aerospace, medical and household appliances and many other fields has been widely used.The course is designed to use MATLAB software to do image data analysis,
8、including reading image and getting the images of the maximum, minimum, mean, median, and, standard deviation, two images of the covariance, correlation coefficient, etc.Key words: MATLAB,digital signal processing ,image data analysis.武汉理工大学Matlab 课程设计课程设计51. Matlab 及课程设计所用函数简介1.1Matlab 简介MATLAB 是由美
9、国 mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如 C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB 和 Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。Matlab 是一套功能十分强大的工程计算及数据分析软件,其应用范
10、围涵盖了数学、工业技术、电子科学、医疗卫生、建筑、金融、数字图像处理等各个领域。许多工程师和研究人员发现,matlab 能迅速测试其构思,综合评测系统性能,并能借此快速设计出更多的解决方案,达到更高的技术要求。Matlab 的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如JPEG、RAS、PCX、TIFF 、PNG 、HDF 、GIF、ICO、CUR、XWD、BMP 等。用 Matlab 所提供的图像处理与分析工具,结合其强大的数据处理能力,研究人员可利用前人已取得的研究成果,可以把精力集中在新技术理论的研究上,而不必关心图像文件的格式、读写、显示和已有成果的技术细节并快速测试其图像
11、处理与分析的新方案。测试既可方便地得到统计数据,同时又可得到直观图示。Matlab 提供了 20 类图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按其功能可分为:图像显示;图像文件 I/O;图像算术运算;几何变换;图像登记;像素值与统汁;图像分析;图像增强;线性滤波;线性二6元滤波设计;图像去模糊;图像变换;邻域与块处理;灰度与二值图像的形态学运算;结构元素创建与处理;基于边缘的处理;色彩映射表操作;色彩空间变换;图像类型与类型转换。Matlab 作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函
12、数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担。被称为第四代编程语言的 Matlab 最大的特点就是简洁开放的程序代码和直观实用的开发环境。具体地说 Matlab 主要有以下特点: (1)库函数资源丰富;(2) 语言精炼,代码灵活;(3)运算符多而灵活;(4) 面向对象,控制功能优良 ;(5)程序设计自由; (6)图形功能强大;(7)程序的兼容性好 ;(8) 源代码开放MATLAB 的基本数据单位是矩阵,它的指令表达式 与数学、工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完成相
13、同的事情简捷得多,并且 MATLAB 也吸收了像 Maple 等软件的优点,使MATLAB 成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA 的支持。可以直接调用,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便自己以后调用,此外许多的 MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。1.2 课程设计所用函数简介下面简单介绍本次课设会用到的一些 Matlab 中的函数。 MATLAB 中图象数据的读取imreadimread 函数用于读入各种图象文件,其一般的用法为X,MAP=imread(filename,fmt)其中,
14、X,MAP 分别为读出的图象数据和颜色表数据,可建立一个数组 I 来简单表示。fmt 为图象的格式,filename 为读取的图象文件。武汉理工大学Matlab 课程设计课程设计7例:X,MAP=imread(flowers.tif ,tif);或者 I=imread(flowers.tif,tif ); MATLAB 中图象文件的显示Imshowimshow 函数是最常用的显示各种图象的函数,imshow 主要用于调用图像索引,比如:imshow(X,map)其功能等同于:image(X)colormap(map)但是,inshow 的功能要强大一些,比如用于灰度图像, RGB 图像,二进制
15、图像,都可以应用。其中 X 是图象数据矩阵,map 是其对应的颜色矩阵,若进行图象处理后不知道图象数据的值域可以用代替 map。需要显示多幅图象时,可以使用 figure 语句,它的功能就是重新打开一个图象显示窗口。例:I=imread(rice.tif);Imshow(I);J=imread(flowers.tif);figure,imshow(J);或者 J=imread(H:zy1.jpg) image(J); title(zy1) MATLAB 中图象文件灰度图像的转化rgb2gray 转换 RGB 图像或颜色映像表为灰度图像语法:I=rgb2gray(RGB) 或者 newmap=r
16、gb2gray(map) 图像数据分析相关的函数求矩阵的最大值和最小值求矩阵 A 的最大值的函数有3种调用格式,分别是: max(A):返回一个行向量,向量的第 i 个元素是矩阵 A 的第 i 列上的最大值。 Y,U=max(A):返回行向量 Y 和 U,Y 向量记录 A 的每列的最大值,U 向量记录每列最大值的行号。 max(A,dim):dim 取1或2。dim 取1时,该函数和 max(A)完全相同;dim 取82时,该函数返回一个列向量,其第 i 个元素是 A 矩阵的第 i 行上的最大值。求最小值的函数是 min,其用法和 max 完全相同。求平均值和中值求数据序列平均值的函数是 me
17、an,求数据序列中值的函数是 median。两个函数的调用格式为:mean(X):返回向量 X 的算术平均值。median(X):返回向量 X 的中值。mean(A):返回一个行向量,其第 i 个元素是 A 的第 i 列的算术平均值。median(A):返回一个行向量,其第 i 个元素是 A 的第 i 列的中值。mean(A,dim):当 dim 为1 时,该函数等同于 mean(A);当 dim 为2时,返回一个列向量,其第 i 个元素是 A 的第 i 行的算术平均值。median(A,dim):当 dim 为1时,该函数等同于 median(A);当 dim 为2时,返回一个列向量,其第
18、i 个元素是 A 的第 i 行的中值。 求和数据序列求 sum 设 X 是一个向量,A 是一个矩阵,函数的调用格式为:sum(X):返回向量 X 各元素的和。sum(A):返回一个行向量,其第 i 个元素是 A 的第 i 列的元素和。sum(A,dim):当 dim 为1时,该函数等同于 sum(A);当 dim 为2时,返回一个列向量,其第 i 个元素是 A 的第 i 行的各元素之和。 求标准差与方差在 MATLAB 中,提供了计算数据序列的标准差的函数 std 与计算方差的函数Var。对于向量 X,std(X)返回一个标准差。对于矩阵 A,std(A) 返回一个行向量,它的各个元素便是矩阵
19、 A 各列或各行的标准差。std 函数的一般调用格式为:Y=std(A,flag,dim)Var 的一般调用格式为:Y=var(A,flag,dim) 求协方差与相关系数MATLAB 提供了 cov 函数可以求出数据的协方差函数的调用格式 为 cov(X) %MATLAB 提供了 corrcoef 函数,可以求出数据的相关系数矩阵。corrcoef 函数的调用格式为:corrcoef(X):返回从矩阵 X 形成的一个相关系数矩阵。此相关系数矩阵的大小与矩阵 X 一样。它把矩阵 X 的每列作为一个变量,然后求它们的相关系数。corrcoef(X,Y):在这里,X,Y 是向量,它们与 corrco
20、ef(X,Y)的作用一样。武汉理工大学Matlab 课程设计课程设计92.数据采集2.1 MATLAB 的读取方法2.1.1 图像的读取从电脑中调用保存的图片两张,图像为 800*600 和 800*600 像素保存为zy1.jpg 和 zy2.jpg,如图 1.1 和 1.2 所示图 2.1 zy110图 2.2 zy2Matlab 显示图像的最基本的手段是使用 image 函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置,利用图像读取函数 imread()可完成图形图像文件的读取。利用函数存放在电脑中的两张图片 zy1.jpg 和 zy2.jpg,并将其分别存储到名为 Y 和
21、 F 的数组中,其具体实现程序如下,得到结果如图 2.3Y=imread(F:zy1.jpg);F=imread(F:zy2.jpg);image(F)图 2.3 读取图片武汉理工大学Matlab 课程设计课程设计11上述张图片满足像素要求,但图像为彩图,不是灰度图,无法进行接下来的分析,需将彩图转换为灰度图,利用 MATLAB 中的 rgb2gray()命令实现RGB 图像到灰度图像的转化。转化后在使用命令 isgray()判断图像是否变为灰度图,如果是灰度图将返回为 1,不是将返回 0。灰度图转换成功后,将转化后的灰度图读取出来。灰度转换程序如下:Y=rgb2gray(Y);F=rgb2g
22、ray(F);figure;imshow(Y);figure;imshow(F); 转换后灰度图如图 2.4,2.5 所示图 2.4图 2.4 zy1 灰度图12图 2.5 zy2 灰度图武汉理工大学Matlab 课程设计课程设计133 图像数据统计处理3.1 图像数据处理原理一幅图像可以被看作是空间各点光强度的集合。MATLAB 把灰度图像存储为一个数据矩阵,该数据矩阵中的元素分别代表了图像中的像素。一幅行数为M、列数为 N 的图像大小为 MN 的矩阵形式为,如图 3.1图 3.1 矩阵形式键入命令 M= imread(F:zy2.jpg)可得出 zy2 的灰度矩阵,如图 3.2 所示图 3
23、.2 zy2 灰度矩阵因此可利用灰度矩阵来分析图片的各种参数以及对数据进行处理,而且由于在应用图片的方面,对图像各项参数的要求不同,所以要对图片进行适当的数据处理,来考察图片的不同参数。例如均值,标准差,方差就是图像的一些相关的参数,可以用作对图片的质量来作评价。143.2 各像素点中最大值的获取3.2.1 引用函数Matlab 中 max()函数用于求最大值。程序如下:image_maxzy1=max(max(Y)Image_maxzy2=max(max(F)3.2.2 计算结果图像最大值分析结果如下图所示图 3.3 最大值分析3.3 各像素点中最小值的获取3.3.1 引用函数Matlab
24、中 min()函数用于求最小值。程序如下:image_minzy1=min(min(Y)image_minzy2=min(min(F)武汉理工大学Matlab 课程设计课程设计153.3.2 计算结果图像最小值分析结果如下图所示图 3.4 最小值分析3.4 各像素点值的均值的获取3.4.1 引用函数MATLAB 中提供均值计算函数 mean()和 mean2(),函数的使用方法如下:例如用 mean2(X)求出矩阵 X 所有元素的均值。若要求整个矩阵的均值,则为 mean(mean(X)。X=1 2 34 5 6mean(mean(X)=3.5也可使用 mean2 函数:mean2(X)=3.
25、5题目要求计算图像各像素点的均值,因而可通过调用 mean2()函数进行计16算,在命令行中输入 mean2(A_gray)即可求得灰度图各像素点的均值。程序如下:image_meanzy1= mean2(Y)image_meanzy2= mean2(F)3.4.2 计算结果图像均值分析结果如图 3.5图 3.5 均值分析3.5 各像素点值的中值的获取3.5.1 引用函数MATLAB 中提供的 median()函数可求出中值。例如:median(M),每一列返回一个值为该列从大到小排列的中值.median(M,dim),dim 为1,2。其中 1 表示按每列返回一个值,为该列从大到小排列的中间
26、值,2 表示按每行返回一个值,为该行从大到小排列的中间值.注意:如果行或列的个数为偶数,返回中间两个值的平均值。求 Y,F 个像素点值的中值程序如下:image_medianzy1=median(Y(:)image_medianzy2=median(F(:)武汉理工大学Matlab 课程设计课程设计173.5.2 计算结果图像中值分析结果如下图所示图 3.6 中值分析3.6 各像素点值的和的获取3.6.1 引用函数MATLAB 中提供的 sum()函数为求和函数,sum(x,2)表示矩阵 x 的横向相加,求每行的和,结果是列向量。 而缺省的 sum(x)就是竖向相加,求每列的和,结果是行向量。
27、利用 sum()函数可求出各像素点的和程序如下:image_sumzy1=sum(sum(Y)image_sumzy2=sum(sum(F)3.6.2 计算结果图像各像素点值的和分析结果如下图所示18图 3.7 像素的点和分析3.7 各像素点值的标准差的获取3.7.1 引用函数MATLAB 中提供的 std()函数可求出标准差。std(x) 算出 x 的标准偏差。 x 可以是一行的 matrix 或者一个多行 matrix 矩阵。如果只有一行,那么就是算一行的标准偏差,如果有多行,就是算每一列的标准偏差。std(x ,a)也是 x 的标准偏差但是 a 可以0 或者 1.如果是 0 和前面没有区
28、别,如果是 1 就是最后除以 n,而不是 n1. std (x, a,b)这里 a 表示是要用 n 还是n1,如果是 a 是 0 就是除以 n1,如果是 1 就是除以 n。b 这里是维数,比如说1 2 3 4 4 5 6 1如果 b 是 1,就是按照行分,如果 b 是 2 就是按照列分如果是三维的矩阵,b3 就按照第三维来分数据。求个像素点值标准差程序如下:image_stdzy1=std2(Y(:) image_stdzy2=std2(F(:) 3.7.2 计算结果图像标准差分析结果如下图所示武汉理工大学Matlab 课程设计课程设计19图 3.8 标准差分析3.8 各像素点值的方差的获取3
29、.8.1 引用函数MATLAB 中提供的 var()函数可求出方差程序如下:image_varzy1=var(double(Y(:)image_varzy2=var(double(F(:)3.8.2 计算结果图像方差分析结果下图所示图 3.9 方差分析203.9 两图中各像素点值的协方差的获取3.9.1 引用函数MATLAB 中提供的 cov()函数可求出两数组间的协方差程序如下:image_covzy=cov(double(Y),double(F)3.9.1 计算结果zy1 和 zy2 两图像像素点值协方差分析结果如下图所示图 3.10 协方差分析3.10 两图的相对系数的获取3.10.1
30、引用函数MATLAB 中提供的 corrcoef 函数可求出两数组间的相对系数。程序如下:image_corrcoefzy=corrcoef(double(Y),double(F)3.11.2 计算结果图像 zy1 和 zy2 的相对系数分析结果如下图所示武汉理工大学Matlab 课程设计课程设计213.11 两图相对系数分析224.心得体会在这次课程设计中,我初步了解并掌握了一些 MATLAB 的使用方法,对MATLAB 语言的发展和特点有了更深的了解,掌握了 MATLAB 的基本语法,了解了 MATLAB 程序书写的一般思路及一般步骤,学会了用 MATLAB 进行图像分析的方法,如读取图像
31、并求出图像的最大值、最小值、均值、中值、和、标准差、两图像的协方差、相关系数等。这些都为我以后更进一步的深入学习MATLAB 打下了基础,总的来说,在这次课程设计中算是受益匪浅,感受良多。在这次课程设计之前,我从未接触过 MATLAB 这款软件。我先是通过互联网和图书馆中的书籍了解到这是一款功能强大的计算软件。而我这一次的题目所要完成的主要就是运用 MATLAB 本身所带有的函数进行图像的分析,我通过多种渠道学会了这些函数的使用方法,然后开始进行调试。尽管过程并不是一帆风顺,但我终究还是讲图片成功的分析出来了,看着自己分析的结果显示在屏幕上,学习的尽头更足了。这次不仅锻炼了我的动手能力,而且考
32、验了我查阅资料和独立思考解决问题的能力,我相信这对今后的学习都会有很大的帮助。在一次次失败,检查,修改的过程中,我学会了耐心,同时也知道了实践更能检查知识的掌握程度。通过这次的课程设计,我明白了自己的不足,也增长了知识,综合能力也有了一定的的提升,对今后的进一步学起到了不小的作用。当然,我也还需要增大相关知识的阅读量,扩大知识面从而更好的运用这款软件。武汉理工大学Matlab 课程设计课程设计23参考文献1 周建兴 MATLAB 从入门到精通 M 人民邮电出版社2 Vinay K.Ingle 数字信号处理及其 MATLAB 实现 M 电子工业出版社3 张德丰 详解 MATLAB 数字图像处理M 电子工业出版社4 王洪元 MATLAB 语言及其在电子信息工程中的应用M 清华大学出版社5 卡斯尔曼 数字图像处理M 电子工业出版社24本科生课程设计成绩评定表姓 名 叶枫 性别 男专业、班级 通信 zy1201 班课程设计题目:利用 MATLAB 仿真系统软件进行图像的数据分析课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日