




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学MATLAB课程设计说明书 课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程学院 题 目: 基于MATLAB的图像的数据分析 初始条件:(1)MATLAB应用软件的基本知识及操作;(2)高等数学、线性代数等基础数学运算;(3)图像处理基础知识。要求完成的主要任务:读取图像并求出图像的最大值、最小值、均值、中值、和、标准差、两图像的协方差、相关系数等。提高要求:绘制图像灰度直方图、对图像进行傅里叶变换和反变换。时间安排:序 号阶段内容所需时间1方案设计1天2软件设计2天3系统调试1天4答辩1天合 计5天指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日I目录摘要IAbstractII正文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源程序19III摘要课程设计的主要目的就是安排学生进行基础理论、基本技能的强化训练,提高学生的基础理论知识、基本动手能力,提高人才培养的基本素质。根据本专业需求和特点,需要在数学基础知识、基本技能方面进行强化训练,使学生对常用的数据分析与处理原理及方法有较为全面的了解,能够运用相关软件进行模拟分析。并帮助学生掌握基本的文献检索和文献阅读的方法,同时提高学生正确地撰写论文的基本能力,本次课程设计主要是运用MATLAB软件来处理图像,而且主要是学会使用该软件中与图像信息显示、分析和处理的有关函数的调用,本次课程设计运用的主要函数为imread、imshow、double、max、min、mean2、median、sum、std2、isgray、rgb2gray、imhist、fft2、ifft2等,通过调用这些函数来实现图像显示、数据分析和图像处理即傅里叶变换。关键字:MATLAB软件数据分析图像处理AbstractThe 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 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 to 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 learn 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, through the call these functions to achieve image display, data analysis and image processing that the Fourier transform. Key words:MATLAB softwareData analysisImage processingIV正文1.设计项目要求与说明在F:images目录下放有两幅灰度图片“达芬奇-蒙娜丽莎.jpg”“杜尚-蒙娜丽莎.jpg”和一幅非灰度图片“达芬奇-蒙娜丽莎.png”,打开MATLAB软件,调用与图像相关的函数读取这三幅图像,求出第一幅图像的最大值、最小值、均值、中值、和、标准差,并求出前两幅图像图像的协方差、相关系数。以上是对图像的数据分析,还可以调用MATLAB中的函数对图像(第三幅)进行处理,例如灰度处理、灰度直方图绘制、快速傅里叶变换等。图1 原始图像及存放位置2.软件流程分析启动MATLAB软件,调用imread()函数读入三幅图像文件的数据,分别存放在A、B、C三个矩阵中,调用imshow()函数可以显示图像,对矩阵A调用max()、min()、mean2()、median()、sum()、std2()函数求出第一幅图像的最大值、最小值、均值、中值、和、标准差,利用定义对矩阵A、B进行相关运算求出前两幅图像的协方差、相关系数。对矩阵C调用isgray()函数判断其是否为灰度图像,若返回值为0则调用rgb2gray()函数将其转换为灰度图像,调用imhist()函数绘制灰度直方图,调用fft2()、ifft2()函数对图像进行傅里叶变换和傅里叶逆变换。转换成灰度图像结束判断第三幅图像是否为灰度图像?绘制灰度直方图、进行快速傅里叶变换与逆变换,显示逆变换后的图像求矩阵A、B的协方差与相关系数求矩阵A的最大值、最小值、均值、中值、和、标准差启动MATLAB读入图像数据,存放在矩阵A、B、C中矩阵A、B、C中数据转换成double类型显示图像图2 程序流程图流程图如下:是否3.调试和实验数据分析3.1数据采集3.1.1图像读取MATLAB中从图像文件中读取数据用函数imread(),这个函数的作用就是将图像文件的数据读入矩阵中,此外还可以用imfinfo()函数查看图像文件的信息。调用imshow()函数显示图像,double()函数是数据类型转换函数,将非double型数据转换成double型,图像数据及图像信息的读取源程序如下:(以第一幅图像为例)源程序1:A=imread(F:images达芬奇-蒙娜丽莎.jpg); %图像数据的读取, %将图像数据放入矩阵A中A=double(A);%A中数据转换成double型info_A=imfinfo(F:images达芬奇-蒙娜丽莎.jpg) %读取图像信息imshow(A)%显示图像运行源程序结果如下:info_A = Filename: F:images达芬奇-蒙娜丽莎.jpg FileModDate: 31-十二月-2012 16:44:15 FileSize: 12850 Format: jpg FormatVersion: Width: 255 Height: 333 BitDepth: 8 ColorType: grayscale FormatSignature: NumberOfSamples: 1 CodingMethod: Huffman CodingProcess: Sequential Comment: Orientation: 1 XResolution: 200 YResolution: 200 ResolutionUnit: Inch Software: ACD Systems Digital Imaging DateTime: 2009:05:25 15:40:42 YCbCrPositioning: Centered DigitalCamera: 1x1 struct图像显示结果如图3:图3 图像显示结果由运行结果可以获得图像的文件名、修改时间、大小、文件类型、像素(255*333)、颜色类型(灰度)等信息。3.1.2图像鉴别与转换为了方便计算和图像处理,常把图像转换才灰度图像,首先要确定所选图像是否为灰度图,如果是则可正常处理,如果不是则要将图片转换为二维灰度图。MATLAB中实现判别图像是否为灰度图的函数为isgray(),若为灰度图则返回1,否则返回值为0。另外,MATLAB还有多种图形转换函数来实现不同图形的转换。灰度图鉴别源程序如下:(以第三幅图像为例)源程序2:C=imread(F:images达芬奇-蒙娜丽莎.png); %图像数据的读取Res=isgray(C) %灰度图进行判别运行源程序结果:Res = 0此结果说明所选图像不是二维灰度图,所以要进行下一步的图形转换,MATLAB实现把RGB图像转换为灰度图像的函数为rgb2gray(),可以用此函数把原图像转换为所需类型图像。图像转换源程序如下:源程序3:C_gray=rgb2gray(C); %图像转换Res=isgray(C_gray) %判断转换后图像是否为灰度图运行源程序结果:Res=1。运行结果说明原图像已经转换成了二维灰度图。3.2数据统计处理要求用MATLAB有关函数计算图像各象素点的最大值、最小值、均值、中值、和、标准差(以第一幅图像为例),以及计算两幅图像的协方差、相关系数(以前两幅图像为例)。MATLAB中提供最大值计算函数max(),最小值计算函数min(),均值计算函数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所有元素的最大值图像数据最大值计算源程序如下:源程序4:A_max=max(A(:)%计算图像各像素点的最大值图4 图像各像素点的最大值计算结果源程序运行结果如图4:3.2.2最小值计算MATLAB中提供最小值计算函数min(),使用方法同max()函数。min(min(A)或min(A(:)%求出矩阵A所有元素的最小值图像数据最小值计算源程序如下:源程序5:A_min=min(min(A)%计算图像各像素点的最小值或 A_min=min(A(:)源程序运行结果如图5:图5 图像各像素点的最小值计算结果图5 图像各像素点的最小值计算结果从运行结果可以看出,min(min(A)和min(A(:)是等价的。3.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 图像各像素点的均值计算结果源程序运行结果如图6:从运行结果可以看出,mean(mean(A)和mean(A(:)是等价的。3.2.4中值计算MATLAB中提供中值计算函数median(),median()函数的使用方法同max()函数: median(A(:)%求出矩阵A中所有元素的中值图像数据中值计算源程序如下:源程序7:A_middle=median(A(:)%计算图像各像素点的中值 比较 A_midlle=median(median(A)源程序运行结果如图7:图7 图像各像素点的中值计算结果从运行结果可以看出median(median(A)和median(A(:)的计算结果是不同的,前者是先计算出每一列的中值,再把这些中值作为一个新的矩阵计算其中值,而后者是先将矩阵A合并成一列再计算其中值,显然后者的计算结果是正确的。3.2.5和计算MATLAB中提供和计算函数sum(),sum()函数的使用方法同max()函数。 sum(sum(A)或sum(A(:)%求出矩阵A中所有元素的和图像数据和计算源程序如下:源程序8:A_sum=sum(A(:)%计算图像各像素点的中值或 A_sum=sum(sum(A)源程序运行结果如图8:图8 图像各像素点的和计算结果从运行结果可以看出,sum(sum(A)和sum(A(:)是等价的。3.2.6标准差计算MATLAB中提供标准差计算函数std()和std2(),两个函数的使用方法如下:s=std(A)%求出一维矩阵A的标准差s=std2(A)%求出二维矩阵A的标准差要求计算图像各像素点的标准差,因而可通过std2()函数进行计算,在命令行中输入std2(A)即可求得图像各像素点的标准差。图像数据标准差计算源程序如下:源程序9:A_std=std2(A)%计算图像各像素点的标准差源程序运行结果如图9:图9 图像各像素点的标准差计算结果3.2.7协方差计算在概率论和统计学中,协方差用于衡量两个变量的总体误差。期望值分别为E(X)与E(Y)的两个实数随机变量X与Y之间的协方差定义为:COV(X,Y)=E(X-E(X)(Y-E(Y) (公式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) %若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的协方差源程序运行结果如图10:图10 两幅图像各像素点的协方差计算结果图10 两幅图像各像素点的协方差计算结果通过运行结果可知,这两幅图像之间的协方差是正值,说明这两幅图像的变化趋势是一致的,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值。3.2.8相关系数计算协方差作为描述X和Y相关程度的量,在同一物理量纲之下有一定的作用,但同样的两个量采用不同的量纲使它们的协方差在数值上表现出很大的差异。为此引入如下概念,定义(公式2)为随机变量X和Y的相关系数。两幅图像数据相关系数计算源程序如下:源程序11:r=cov/std(A)/std(B);%计算两幅图像各像素点的相关系数源程序运行结果如图11:图11 两幅图像各像素点的相关系数计算结果由运行结果可知,相关系数在01之间,说明两幅图像具有一定的相关性。3.2.9灰度直方图绘制灰度直方图用于显示图像的灰度值分布情况,是数字图像处理中最简单和最实用的工具。MATLAB中提供了专门绘制直方图的函数imhist()。用它可以很简单的绘制出一幅图像的灰度直方图。在MATLAB中可以调用函数hist来绘制图像的灰度直方图,对应图像处理函数为imhist();用该函数可以方便的绘制图像的数据柱状图,在命令窗口输入imhist(C_gray)即可得到图像C_gray的灰度直方图。灰度直方图绘制源程序如下:(以第三幅图像为例)源程序12:C=imread(F:images达芬奇-蒙娜丽莎.png); %图像数据的读取C_gray=rgb2gray(C); %图像转换imhist(C_gray); %绘制灰度直方图源程序运行结果如图12:图12 灰度直方图图12 灰度直方图3.3快速傅里叶变换傅立叶变换是线性系统分析的一个有力的工具。它在图像处理,特别是在图像增强、复原和压缩中,扮演着非常重要的作用。实际中一般采用一种叫做快速傅立叶变换(FFT)的方法,MATLAB中的fft2指令用于得到二维FFT的结果,ifft2指令用于得到二维FFT逆变换的结果。快速傅里叶变换与反变换源程序如下:(以第三幅图像为例)源程序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,) %显示傅里叶反变换后结果colorbartitle(傅里叶逆变换结果)源程序运行结果如图13:图13 原图像、二维FFT结果、傅里叶逆变换结果小结与体会通过本次课程设计,一方面我对MATLAB软件的使用更加熟练了,另一方面,对图像的处理有了初步掌握,虽然以前使用过该软件,但都是对信号的处理,并没有涉及到对图像的处理,所以对图像处理的操作没有一点了解,在做该课程设计时,通过查找有关书籍和同学们的探讨,才顺利完成了该次课程设计的要求。在做本次课程设计时,对图像取样和图像数据统计没有遇到太大困难,因为这些都可以通过简单通过调用MATLAB相关函数得到,所以较为容易的解决了问题。但在对图像做快速傅里叶变换时遇到了困难,由于对这些没有一点了解所以要经过查找资料才能解决,还好这些问题都还比较简单,通过网上资料浏览,最终也很顺利的解决了问题。参考文献1陈怀琛主编.MATLAB及在电子信息课程中的应用.电子工业出版社.2005.82刘卫国主编.MATLAB程序设计教程.中国水利水电出版社.2004.63曹弋主编.MATLAB教程及实训.机械工业出版社.2005.74王华主编.MATLAB电子仿真与应用教程.国防工业出版社.2007.105刘慧颖主编.MATLAB R2007基础教程.清华大学出版社.2005.86陈怀琛主编.数字信号处理教程-MATLAB释义与实现(第二版).电子工业出版社.2007.9附录源程序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(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(:)%计算图像各像素点的中值8.图像数据和计算源程序:A_sum=sum(A(:)%计算图像各像素点的中值或 A_sum=sum(sum(A)9.图像数据标准差计算源程序:A_std=std2(A)%计算图像各像素点的标准差10.两幅图像数据协方差计算源程序:A=imread(F:images达芬奇-蒙娜丽莎.jpg); %图像1数据的读取B=imread(F:images杜尚-蒙娜丽莎.jp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国钢铁行业绿色转型与建筑应用趋势分析
- 2025-2030中国都市圈轨道交通网络效应评估与站点商业开发价值预测
- 2026届山东省潍坊奎文区五校联考物理八上期末经典模拟试题含解析
- 2026届江西南昌市西湖区第二十四中学物理八年级第一学期期末教学质量检测试题含解析
- 2026届湖南长沙麓山国际实验学校物理八年级第一学期期末经典试题含解析
- 消毒防疫者产品在家庭清洁卫生市场的推广策略报告
- 互联网医疗健康竞品分析2025年可行性研究报告
- 2026届贵州省黔西南州勤智学校物理八年级第一学期期末经典模拟试题含解析
- 景区导览在景区旅游教育中的推广报告
- 金融科技虚拟货币市场风险控制策略2025年研究报告
- 2024年红河产业投资集团有限公司招聘笔试冲刺题(带答案解析)
- 《HALCON编程及工程应用》课件第9章 HALCON测量
- 医院培训课件:《护理人文关怀的践行-仁心仁护彰显大爱》
- PETS5词汇表总结大全
- 数字谜02-三上08-乘除法填空格
- 应届生培养方案
- 保险代位求偿权答辩状
- 《英语句子成分及基本结构》课件
- 汽修基础理论知识
- 综合实践活动六年级上册全册讲课课件
- 地产交房仪式主题活动方案策划
评论
0/150
提交评论