收藏 分享(赏)

基于Matlab的图像的数据分析new.doc

上传人:dzzj200808 文档编号:2606889 上传时间:2018-09-23 格式:DOC 页数:25 大小:766.50KB
下载 相关 举报
基于Matlab的图像的数据分析new.doc_第1页
第1页 / 共25页
基于Matlab的图像的数据分析new.doc_第2页
第2页 / 共25页
基于Matlab的图像的数据分析new.doc_第3页
第3页 / 共25页
基于Matlab的图像的数据分析new.doc_第4页
第4页 / 共25页
基于Matlab的图像的数据分析new.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、I目录摘要 IAbstract.II正文 11.设计项目要求与说明 12.软件流程分析 23.调试和实验数据分析 33.1 数据采集 .33.1.1 图像读取 33.1.2 图像鉴别与转换 53.2 数据统计处理 .63.2.1 最大值计算 63.2.2 最小值计算 73.2.3 均值计算 83.2.4 中值计算 93.2.5 和计算 .103.2.6 标准差 计算 .113.2.7 协方差计算 .123.2.8 相关系数计算 .143.2.9 灰度直方图绘制 .153.3 快速傅里叶变换 16小结与体会 .17参考文献 .18附录 .19源程序 .19I摘要课程设计的主要目的就是安排学生进行

2、基础理论、基本技能的强化训练,提高学生的基础理论知识、基本动手能力,提高人才培养的基本素质。根据本专业需求和特点,需要在数学基础知识、基本技能方面进行强化训练,使学生对常用的数据分析与处理原理及方法有较为全面的了解,能够运用相关软件进行模拟分析。并帮助学生掌握基本的文献检索和文献阅读的方法,同时提高学生正确地撰写论文的基本能力,本次课程设计主要是运用 MATLAB 软件来处理图像,而且主要是学会使用该软件中与图像信息显示、分析和处理的有关函数的调用,本次课程设计运用的主要函数为imread、imshow 、double 、 max、min、mean2、median、sum、std2、isgra

3、y、rgb2gray、imhist 、fft2 、ifft2 等,通过调用这些函数来实现图像显示、数据分析和图像处理即傅里叶变换。关键字:MATLAB 软件 数据分析 图像处理IIAbstractThe basis of curriculum design is the main purpose of allowing students to carry out basic theory, basic skills training to enhance students knowledge of basic theory, basic practical ability to improve

4、 the basic quality of personnel training. According to the professional needs and characteristics, the need for basic knowledge in mathematics, basic skills training to enable students to commonly used data analysis and theory and methods to deal with a more comprehensive understanding of, related t

5、o the use of simulation software. And to help students master basic reading literature search and documentation of methods, while improving the students correctly the basic ability to write papers, this is the basis of curriculum design to deal with the use of MATLAB software, images, and mainly lea

6、rn how to use the software with the image information display, analysis and processing of the function to be called the basis for the use of curriculum design for the main function, including imread, imshow, double, max, min, mean2, median, sum, std2, isgray, rgb2gray, imhist, fft2, ifft2 and so on,

7、 through the call these functions to achieve image display, data analysis and image processing that the Fourier transform. Key words:MATLAB software Data analysis Image processing1正文1.设计项目要求与说明在 F:images 目录下放有两幅灰度图片“达芬奇-蒙娜丽莎.jpg” “杜尚-蒙娜丽莎.jpg”和一幅非灰度图片“达芬奇-蒙娜丽莎.png” ,打开 MATLAB 软件,调用与图像相关的函数读取这三幅图像,求出

8、第一幅图像的最大值、最小值、均值、中值、和、标准差,并求出前两幅图像图像的协方差、相关系数。以上是对图像的数据分析,还可以调用 MATLAB 中的函数对图像(第三幅)进行处理,例如灰度处理、灰度直方图绘制、快速傅里叶变换等。图 1 原始图像及存放位置22.软件流程分析启动 MATLAB 软件,调用 imread()函数读入三幅图像文件的数据,分别存放在 A、B、C 三个矩阵中,调用 imshow()函数可以显示图像,对矩阵 A 调用 max()、min()、mean2()、median()、sum() 、std2()函数求出第一幅图像的最大值、最小值、均值、中值、和、标准差,利用定义对矩阵 A

9、、B 进行相关运算求出前两幅图像的协方差、相关系数。对矩阵 C 调用 isgray()函数判断其是否为灰度图像,若返回值为 0 则调用rgb2gray()函数将其转换为灰度图像,调用 imhist()函数绘制灰度直方图,调用 fft2()、ifft2()函数对图像进行傅里叶变换和傅里叶逆变换。流程图如下:是否转换成灰度图像结束判断第三幅图像是否为灰度图像?绘制灰度直方图、进行快速傅里叶变换与逆变换,显示逆变换后的图像求矩阵 A、B 的协方差与相关系数求矩阵 A 的最大值、最小值、均值、中值、和、标准差启动 MATLAB读入图像数据,存放在矩阵 A、B、C中矩阵 A、B、C 中数据转换成 dou

10、ble 类型显示图像图 2 程序流程图33.调试和实验数据分析3.1 数据采集3.1.1 图像读取MATLAB 中从图像文件中读取数据用函数 imread(),这个函数的作用就是将图像文件的数据读入矩阵中,此外还可以用 imfinfo()函数查看图像文件的信息。调用 imshow()函数显示图像,double()函数是数据类型转换函数,将非double 型数据转换成 double 型,图像数据及图像信息的读取源程序如下:(以第一幅图像为例)源程序 1:A=imread(F:images达芬奇-蒙娜丽莎.jpg); %图像数据的读取,%将图像数据放入矩阵 A 中A=double(A); %A 中

11、数据转换成 double型info_A=imfinfo(F:images达芬奇-蒙娜丽莎.jpg) %读取图像信息imshow(A) %显示图像运行源程序结果如下:info_A = Filename: F:images达芬奇-蒙娜丽莎.jpgFileModDate: 31-十二月-2012 16:44:15FileSize: 12850Format: jpgFormatVersion: Width: 255Height: 333BitDepth: 8ColorType: grayscale4FormatSignature: NumberOfSamples: 1CodingMethod: Huf

12、fmanCodingProcess: SequentialComment: Orientation: 1XResolution: 200YResolution: 200ResolutionUnit: InchSoftware: ACD Systems Digital Imaging DateTime: 2009:05:25 15:40:42 YCbCrPositioning: CenteredDigitalCamera: 1x1 struct图像显示结果如图 3:图 3 图像显示结果5由运行结果可以获得图像的文件名、修改时间、大小、文件类型、像素(255*333) 、颜色类型(灰度)等信息。3

13、.1.2 图像鉴别与转换为了方便计算和图像处理,常把图像转换才灰度图像,首先要确定所选图像是否为灰度图,如果是则可正常处理,如果不是则要将图片转换为二维灰度图。MATLAB 中实现判别图像是否为灰度图的函数为 isgray(),若为灰度图则返回 1,否则返回值为 0。另外,MATLAB 还有多种图形转换函数来实现不同图形的转换。灰度图鉴别源程序如下:(以第三幅图像为例)源程序 2:C=imread(F:images达芬奇-蒙娜丽莎.png); %图像数据的读取Res=isgray(C) %灰度图进行判别运行源程序结果:Res = 0此结果说明所选图像不是二维灰度图,所以要进行下一步的图形转换,

14、MATLAB 实现把 RGB 图像转换为灰度图像的函数为 rgb2gray(),可以用此函数把原图像转换为所需类型图像。图像转换源程序如下:源程序 3:C_gray=rgb2gray(C); %图像转换Res=isgray(C_gray) %判断转换后图像是否为灰度图运行源程序结果:Res=1。运行结果说明原图像已经转换成了二维灰度图。63.2 数据统计处理要求用 MATLAB 有关函数计算图像各象素点的最大值、最小值、均值、中值、和、标准差(以第一幅图像为例) ,以及计算两幅图像的协方差、相关系数(以前两幅图像为例) 。MATLAB 中提供最大值计算函数 max(),最小值计算函数 min(

15、),均值计算函数 mean()和 mean2(),中值计算函数 median(),和计算函数 sum(),标准差计算函数 std()和 std2(),通过调用这些函数可以得到所需数据,协方差和相关系数通过定义求得。3.2.1 最大值计算MATLAB 中提供最大值计算函数 max(),若 A 为 n 列矩阵,max(A)会对矩阵 A 的每一列取最大值得到一个 1n 列矩阵,可先将 n 列矩阵 A 合并成一列,合并方法为 A(:),再调用 max()函数得到结果,或者调用两次 max()函数。max()函数的使用方法如下:max(max(A)或 max(A(:) %求出矩阵 A 所有元素的最大值图

16、像数据最大值计算源程序如下:源程序 4:A_max=max(A(:) %计算图像各像素点的最大值源程序运行结果如图 4:图 4 图像各像素点的最大值计算结果73.2.2 最小值计算MATLAB 中提供最小值计算函数 min(),使用方法同 max()函数。min(min(A)或 min(A(:) %求出矩阵 A 所有元素的最小值图像数据最小值计算源程序如下:源程序 5:A_min=min(min(A) %计算图像各像素点的最小值或 A_min=min(A(:)源程序运行结果如图 5:从运行结果可以看出,min(min(A)和 min(A(:)是等价的。图 5 图像各像素点的最小值计算结果图 5

17、 图像各像素点的最小值计算结果83.2.3 均值计算MATLAB 中提供均值计算函数 mean()和 mean2(),mean()函数的使用方法同max()函数,mean2()函数直接返回二维矩阵中所有值的均值,使用方法如下:mean(mean(A)或 mean(A(:)%求出矩阵 A 中所有元素的均值mean2(A) %求出矩阵 A 中所有元素的均值图像数据均值计算源程序如下:源程序 6:A_average=mean2(A) %计算图像各像素点的均值或 mean(A(:)源程序运行结果如图 6:从运行结果可以看出,mean(mean(A)和 mean(A(:)是等价的。图 6 图像各像素点的

18、均值计算结果93.2.4 中值计算MATLAB 中提供中值计算函数 median(),median()函数的使用方法同 max()函数:median(A(:) %求出矩阵 A 中所有元素的中值图像数据中值计算源程序如下:源程序 7:A_middle=median(A(:) %计算图像各像素点的中值比较 A_midlle=median(median(A)源程序运行结果如图 7:从运行结果可以看出 median(median(A)和 median(A(:)的计算结果是不同的,前者是先计算出每一列的中值,再把这些中值作为一个新的矩阵计算其中值,而后者是先将矩阵 A 合并成一列再计算其中值,显然后者的

19、计算结果是图 7 图像各像素点的中值计算结果10正确的。3.2.5 和计算MATLAB 中提供和计算函数 sum(),sum()函数的使用方法同 max()函数。sum(sum(A)或 sum(A(:) %求出矩阵 A 中所有元素的和图像数据和计算源程序如下:源程序 8:A_sum=sum(A(:) %计算图像各像素点的中值或 A_sum=sum(sum(A)源程序运行结果如图 8:从运行结果可以看出,sum(sum(A) 和 sum(A(:)是等价的。图 8 图像各像素点的和计算结果113.2.6 标准差计算MATLAB 中提供标准差计算函数 std()和 std2(),两个函数的使用方法如

20、下:s=std(A) %求出一维矩阵 A 的标准差s=std2(A) %求出二维矩阵 A 的标准差要求计算图像各像素点的标准差,因而可通过 std2()函数进行计算,在命令行中输入 std2(A)即可求得图像各像素点的标准差。图像数据标准差计算源程序如下:源程序 9:A_std=std2(A) %计算图像各像素点的标准差源程序运行结果如图 9:图 9 图像各像素点的标准差计算结果123.2.7 协方差计算在概率论和统计学中,协方差用于衡量两个变量的总体误差。期望值分别为 E(X)与 E(Y)的两个实数随机变量 X 与 Y 之间的协方差定义为:COV(X,Y)=E(X-E(X)(Y-E(Y) (

21、公式 1) 其中,E 是期望值。两幅图像数据协方差计算源程序如下:(以前两幅图像为例)源程序 10:A=imread(F:images达芬奇-蒙娜丽莎.jpg); %图像 1 数据的读取B=imread(F:images杜尚-蒙娜丽莎.jpg); %图像 2 数据的读取A=double(A);B=double(B); %数据转换成 double 型A=A(:);B=B(:); %合并成一列矩阵A=A;B=B; %列矩阵转换成行矩阵length_A=length(A);length_B=length(B); %求矩阵长度%将 A、B 矩阵变为等长矩阵if(length_Alength_B) %若

22、 A 矩阵比 B 矩阵长,B=B,zeros(1,length_A-length_B); %在 B 矩阵后面加 0 补齐else %若 A 矩阵比 B 矩阵短A=A,zeros(1,length_B-length_A); %在 A 矩阵后面加 0 补齐endA_average=mean(A);B_average=mean(B); %求矩阵均值AB=(A-A_average).*(B-B_average); %构造矩阵 AB=A-E(A)B-E(B)cov=mean(AB); %求矩阵 AB 均值即 A、B 的协方差13源程序运行结果如图 10:通过运行结果可知,这两幅图像之间的协方差是正值,说

23、明这两幅图像的变化趋势是一致的,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值。图 10 两幅图像各像素点的协方差计算结果图 两幅图像各像素点的协方差计算结果143.2.8 相关系数计算协方差作为描述 X 和 Y 相关程度的量,在同一物理量纲之下有一定的作用,但同样的两个量采用不同的量纲使它们的协方差在数值上表现出很大的差异。为此引入如下概念,定义 )(,XYYDCOV为随机变量 X 和 Y 的相关系数。两幅图像数据相关系数计算源程序如下:源程序 11:r=cov/std(A)/std(B); %计算两幅图像各像素点的相关系数源程序运行结果如图 11:由运行结果可知,相关系数

24、在 01 之间,说明两幅图像具有一定的相关性。图 11 两幅图像各像素点的相关系数计算结果(公式 2)153.2.9 灰度直方图绘制灰度直方图用于显示图像的灰度值分布情况,是数字图像处理中最简单和最实用的工具。MATLAB 中提供了专门绘制直方图的函数 imhist()。用它可以很简单的绘制出一幅图像的灰度直方图。在 MATLAB 中可以调用函数 hist 来绘制图像的灰度直方图,对应图像处理函数为 imhist();用该函数可以方便的绘制图像的数据柱状图,在命令窗口输入 imhist(C_gray)即可得到图像 C_gray 的灰度直方图。灰度直方图绘制源程序如下:(以第三幅图像为例)源程序

25、 12:C=imread(F:images达芬奇-蒙娜丽莎.png); %图像数据的读取C_gray=rgb2gray(C); %图像转换imhist(C_gray); %绘制灰度直方图源程序运行结果如图 12:图 12 灰度直方图图 灰度直方图163.3 快速傅里叶变换傅立叶变换是线性系统分析的一个有力的工具。它在图像处理,特别是在图像增强、复原和压缩中,扮演着非常重要的作用。实际中一般采用一种叫做快速傅立叶变换(FFT)的方法,MATLAB 中的 fft2 指令用于得到二维 FFT 的结果,ifft2 指令用于得到二维 FFT 逆变换的结果。快速傅里叶变换与反变换源程序如下:(以第三幅图像

26、为例)源程序 13:C=imread(F:images达芬奇-蒙娜丽莎.png); %读取图像信息C_gray=rgb2gray(C); %图像转换figure(1)imshow(C_gray,) %显示图像colorbartitle(原图像)j=fft2(C_gray);k=fftshift(j);l=log(abs(k); %进行傅里叶变换figure(2);imshow(l,) %显示傅里叶变换后结果colorbartitle(二维FFT结果)C_gray1=ifft2(j)/255; %进行傅里叶反变换figure(3);imshow(C_gray1,) %显示傅里叶反变换后结果col

27、orbartitle(傅里叶逆变换结果)源程序运行结果如图 13:图 13 原图像、二维 FFT 结果、傅里叶逆变换结果17小结与体会通过本次课程设计,一方面我对 MATLAB 软件的使用更加熟练了,另一方面,对图像的处理有了初步掌握,虽然以前使用过该软件,但都是对信号的处理,并没有涉及到对图像的处理,所以对图像处理的操作没有一点了解,在做该课程设计时,通过查找有关书籍和同学们的探讨,才顺利完成了该次课程设计的要求。在做本次课程设计时,对图像取样和图像数据统计没有遇到太大困难,因为这些都可以通过简单通过调用 MATLAB 相关函数得到,所以较为容易的解决了问题。但在对图像做快速傅里叶变换时遇到

28、了困难,由于对这些没有一点了解所以要经过查找资料才能解决,还好这些问题都还比较简单,通过网上资料浏览,最终也很顺利的解决了问题。18参考文献1陈怀琛主编.MATLAB 及在电子信息课程中的应用 .电子工业出版社.2005.82刘卫国主编.MATLAB 程序设计教程.中国水利水电出版社 .2004.63曹弋主编. MATLAB 教程及实训.机械工业出版社 .2005.74王华主编. MATLAB 电子仿真与应用教程.国防工业出版社 .2007.105刘慧颖主编.MATLAB R2007 基础教程.清华大学出版社.2005.86陈怀琛主编.数字信号处理教程-MATLAB 释义与实现(第二版).电子

29、工业出版社.2007.919附录源程序1.图像数据及图像信息的读取源程序:A=imread(F:images达芬奇-蒙娜丽莎.jpg); %图像数据的读取,%将图像数据放入矩阵 A 中A=double(A); %A 中数据转换成 double 型info_A=imfinfo(F:images达芬奇-蒙娜丽莎.jpg) %读取图像信息imshow(A) %显示图像2.灰度图鉴别源程序:C=imread(F:images达芬奇-蒙娜丽莎.png); %图像数据的读取Res=isgray(C) %灰度图进行判别3.图像转换源程序:C_gray=rgb2gray(C); %图像转换Res=isgray

30、(C_gray) %判断转换后图像是否为灰度图4.图像数据最大值计算源程序:A_max=max(A(:) %计算图像各像素点的最大值5.图像数据最小值计算源程序:A_min=min(min(A) %计算图像各像素点的最小值或 A_min=min(A(:)6.图像数据均值计算源程序:A_average=mean2(A) %计算图像各像素点的均值或 mean(A(:)7.图像数据中值计算源程序:A_middle=median(A(:) %计算图像各像素点的中值208.图像数据和计算源程序:A_sum=sum(A(:) %计算图像各像素点的中值或 A_sum=sum(sum(A)9.图像数据标准差计

31、算源程序:A_std=std2(A) %计算图像各像素点的标准差10.两幅图像数据协方差计算源程序:A=imread(F:images达芬奇-蒙娜丽莎.jpg); %图像 1 数据的读取B=imread(F:images杜尚-蒙娜丽莎.jpg); %图像 2 数据的读取A=double(A);B=double(B); %数据转换成 double 型A=A(:);B=B(:); %合并成一列矩阵A=A;B=B; %列矩阵转换成行矩阵length_A=length(A);length_B=length(B); %求矩阵长度%将 A、B 矩阵变为等长矩阵if(length_Alength_B) %若

32、 A 矩阵比 B 矩阵长,B=B,zeros(1,length_A-length_B); %在 B 矩阵后面加 0 补齐else %若 A 矩阵比 B 矩阵短A=A,zeros(1,length_B-length_A); %在 A 矩阵后面加 0 补齐endA_average=mean(A);B_average=mean(B); %求矩阵均值AB=(A-A_average).*(B-B_average); %构造矩阵 AB=A-E(A)B-E(B)cov=mean(AB); %求矩阵 AB 均值即 A、B 的协方差11.两幅图像数据相关系数计算源程序:r=cov/std(A)/std(B);

33、%计算两幅图像各像素点的相关系数12.灰度直方图绘制源程序:C=imread(F:images达芬奇-蒙娜丽莎.png); %图像数据的读取C_gray=rgb2gray(C); %图像转换imhist(C_gray); %绘制灰度直方图2113.快速傅里叶变换与反变换源程序:C=imread(F:images达芬奇-蒙娜丽莎.png); %读取图像信息C_gray=rgb2gray(C); %图像转换figure(1)imshow(C_gray,) %显示图像colorbartitle(原图像)j=fft2(C_gray);k=fftshift(j);l=log(abs(k); %进行傅里叶变换figure(2);imshow(l,) %显示傅里叶变换后结果colorbartitle(二维FFT结果)C_gray1=ifft2(j)/255; %进行傅里叶反变换figure(3);imshow(C_gray1,) %显示傅里叶反变换后结果colorbartitle(傅里叶逆变换结果)22本科生课程设计成绩评定表姓 名 张煜 性 别 男专业、班级 信息 SY1001 班课程设计题目:基于 MATLAB 的图像的数据分析课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报