利用MATLAB仿真软件系统进行图像的数据分析

更新时间:2024-05-08 18:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

武汉理工大学《Matlab课程设计》课程设计

课程设计任务书

学生姓名: 叶枫 专业班级: 通信zy1201班 指导教师: 姜宁 工作单位: 信息工程学院 题 目: 利用MATLAB仿真软件系统进行图像的数据分析 初始条件:

1.MATLAB软件。2.数字信号处理与图像处理基础知识。

要求完成的主要任务:

读取图像并求出图像的最大值、最小值、均值、中值、和、标准差、

两图像的协方差、相关系数等。

课程设计的目的:

1.理论目的

课程设计的目的之一是为了巩固课堂理论学习,并能用所学理论知识正确分析信号处理的基本问题和解释信号处理的基本现象。 2.实践目的

课程设计的目的之二是通过设计具体的图像信号变换掌握图像和信号处理的方法和步骤。

时间安排:

序 阶段内容 号 1 方案设计 2 软件设计 3 系统调试 4 答辩 合 计

所需时间 2天 2天 1天 1天 6天 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日

1

武汉理工大学《Matlab课程设计》课程设计

目 录

摘 要..................................................................................................................... 3 Abstract ................................................................................................................... 4 1. Matlab及课程设计所用函数简介 ................................................................. 5

1.1Matlab简介 ................................................................................................. 5 1.2课程设计所用函数简介 ............................................................................. 6 2.数据采集.............................................................................................................. 9

2.1 MATLAB的读取方法 ............................................................................... 9 3图像数据统计处理............................................................................................ 13

3.1 图像数据处理原理 .................................................................................. 13 3.2各像素点中最大值的获取 ....................................................................... 14 3.3各像素点中最小值的获取 ....................................................................... 14 3.4各像素点值的均值的获取 ....................................................................... 15 3.5各像素点值的中值的获取 ....................................................................... 16 3.6各像素点值的和的获取 ........................................................................... 17 3.7各像素点值的标准差的获取 ................................................................... 18 3.8各像素点值的方差的获取 ....................................................................... 19 3.9两图中各像素点值的协方差的获取 ....................................................... 20 3.10两图的相对系数的获取 ......................................................................... 20 4.心得体会............................................................................................................ 22 参考文献............................................................................................................... 23

2

武汉理工大学《Matlab课程设计》课程设计

摘 要

MATLAB软件是矩阵实验室的简称,是美国MathWorks公司出品的商业数学软件,可用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,广泛用于数字信号分析,系统识别,时序分析与建模,神经网络、动态仿真等方面有着广泛的应用。

MATLAB因具有强大的图形处理功能、符号运算功能和数值计算功能,而被广泛应用。而且随着信息时代和数字世界的到来,数字信号处理也已成为当今一门极其重要的学科和技术领域。目前数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。

本次课程设计利用MATLAB软件进行图像的数据分析,包括读取图像并求出图像的最大值、最小值、均值、中值、和、标准差、两图像的协方差、相关系数等。

关键词:MATLAB,数字信号处理,图像数据分析

3

武汉理工大学《Matlab课程设计》课程设计

Abstract

MATLAB software MATLAB is Matrix lab (Matrix Laboratory) abbreviation,is the product of our company 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 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 important 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, 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.

4

武汉理工大学《Matlab课程设计》课程设计

1. Matlab及课程设计所用函数简介

1.1Matlab简介

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。

Matlab是一套功能十分强大的工程计算及数据分析软件,其应用范围涵盖了数学、工业技术、电子科学、医疗卫生、建筑、金融、数字图像处理等各个领域。许多工程师和研究人员发现,matlab能迅速测试其构思,综合评测系统性能,并能借此快速设计出更多的解决方案,达到更高的技术要求。

Matlab的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如JPEG、RAS、PCX、TIFF、PNG、HDF、GIF、ICO、CUR、XWD、BMP等。

用Matlab所提供的图像处理与分析工具,结合其强大的数据处理能力,研究人员可利用前人已取得的研究成果,可以把精力集中在新技术理论的研究上,而不必关心图像文件的格式、读写、显示和已有成果的技术细节.并快速测试其图像处理与分析的新方案。测试既可方便地得到统计数据,同时又可得到直观图示。

Matlab提供了20类图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。

这些函数按其功能可分为:图像显示;图像文件I/O;图像算术运算;几何变换;图像登记;像素值与统汁;图像分析;图像增强;线性滤波;线性二元滤波设计;图像去模糊;图像变换;邻域与块处理;灰度与二值图像的形态学

5

武汉理工大学《Matlab课程设计》课程设计

运算;结构元素创建与处理;基于边缘的处理;色彩映射表操作;色彩空间变换;图像类型与类型转换。

Matlab作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担。被称为第四代编程语言的Matlab最大的特点就是简洁开放的程序代码和直观实用的开发环境。具体地说Matlab主要有以下特点:

(1)库函数资源丰富;(2)语言精炼,代码灵活; (3)运算符多而灵活;(4)面向对象,控制功能优良 ; (5)程序设计自由;(6)图形功能强大; (7)程序的兼容性好 ;(8)源代码开放

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

1.2课程设计所用函数简介

下面简单介绍本次课设会用到的一些Matlab中的函数。 ⑴ MATLAB中图象数据的读取 imread

imread函数用于读入各种图象文件,其一般的用法为 [X,MAP]=imread(‘filename’,‘fmt’)

其中,X,MAP分别为读出的图象数据和颜色表数据,可建立一个数组I来简单表示。fmt为图象的格式,filename为读取的图象文件。 例:[X,MAP]=imread(’flowers.tif’,’tif’); 或者I=imread(’flowers.tif’,’tif’);

6

武汉理工大学《Matlab课程设计》课程设计

⑵ MATLAB中图象文件的显示 Imshow

imshow函数是最常用的显示各种图象的函数,imshow主要用于调用图像索引,比如:

imshow(X,map) 其功能等同于: image(X)

colormap(map)

但是,inshow的功能要强大一些,比如用于灰度图像,RGB图像,二进制图像,都可以应用。其中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=rgb2gray(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取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。 求最小值的函数是min,其用法和max完全相同。 求平均值和中值

求数据序列平均值的函数是mean,求数据序列中值的函数是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行的算术平均值。

7

武汉理工大学《Matlab课程设计》课程设计

median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,返回一个列向量,其第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)返回一个行向量,它的各个元素便是矩阵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是向量,它们与corrcoef([X,Y])的作用一样。

8

武汉理工大学《Matlab课程设计》课程设计

2.数据采集

2.1 MATLAB的读取方法

2.1.1图像的读取

从电脑中调用保存的图片两张,图像为800*600和800*600像素保存为zy1.jpg和zy2.jpg,如图1.1和1.2所示

图2.1 zy1

9

武汉理工大学《Matlab课程设计》课程设计

图2.2 zy2

Matlab显示图像的最基本的手段是使用image函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置,利用图像读取函数imread()可完成图形图像文件的读取。

利用函数存放在电脑中的两张图片zy1.jpg和zy2.jpg,并将其分别存储到名为Y和F的数组中,其具体实现程序如下,得到结果如图2.3

Y=imread('F:\\zy1.jpg'); F=imread('F:\\zy2.jpg');

image(F)

图2.3 读取图片

10

武汉理工大学《Matlab课程设计》课程设计

上述张图片满足像素要求,但图像为彩图,不是灰度图,无法进行接下来的分析,需将彩图转换为灰度图,利用MATLAB中的rgb2gray()命令实现RGB图像到灰度图像的转化。转化后在使用命令isgray()判断图像是否变为灰度图,如果是灰度图将返回为1,不是将返回0。灰度图转换成功后,将转化后的灰度图读取出来。

灰度转换程序如下: Y=rgb2gray(Y); F=rgb2gray(F); figure;

imshow(Y); figure;

imshow(F);

转换后灰度图如图2.4,2.5所示

图2.4

图2.4 zy1灰度图

11

武汉理工大学《Matlab课程设计》课程设计

图2.5 zy2灰度图

12

武汉理工大学《Matlab课程设计》课程设计

3 图像数据统计处理

3.1图像数据处理原理

一幅图像可以被看作是空间各点光强度的集合。MATLAB把灰度图像存储为一个数据矩阵,该数据矩阵中的元素分别代表了图像中的像素。一幅行数为M、列数为N的图像大小为M×N的矩阵形式为,如图3.1

图3.1 矩阵形式

键入命令M= imread('F:\\zy2.jpg')可得出zy2的灰度矩阵,如图3.2所示

图3.2 zy2灰度矩阵

因此可利用灰度矩阵来分析图片的各种参数以及对数据进行处理,而且由于在应用图片的方面,对图像各项参数的要求不同,所以要对图片进行适当的数据处理,来考察图片的不同参数。例如均值,标准差,方差就是图像的一些相关的参数,可以用作对图片的质量来作评价。

13

武汉理工大学《Matlab课程设计》课程设计

3.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中min()函数用于求最小值。 程序如下:

image_minzy1=min(min(Y)) image_minzy2=min(min(F))

14

武汉理工大学《Matlab课程设计》课程设计

3.3.2计算结果

图像最小值分析结果如下图所示

图3.4 最小值分析

3.4各像素点值的均值的获取 3.4.1引用函数

MATLAB中提供均值计算函数mean()和mean2(),函数的使用方法如下:例如用mean2(X)求出矩阵X所有元素的均值。

若要求整个矩阵的均值,则为mean(mean(X))。 >>X=[1 2 3 4 5 6]

>>mean(mean(X))=3.5 也可使用mean2函数: >>mean2(X)=3.5

题目要求计算图像各像素点的均值,因而可通过调用mean2()函数进行计

15

武汉理工大学《Matlab课程设计》课程设计

算,在命令行中输入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表示按每列返回一个值,为该列从大到小排列的中间值,2表示按每行返回一个值,为该行从大到小排列的中间值.

注意:如果行或列的个数为偶数,返回中间两个值的平均值。

求Y,F个像素点值的中值程序如下: image_medianzy1=median(Y(:)) image_medianzy2=median(F(:))

16

武汉理工大学《Matlab课程设计》课程设计

3.5.2计算结果

图像中值分析结果如下图所示

图3.6 中值分析

3.6各像素点值的和的获取 3.6.1引用函数

MATLAB中提供的sum()函数为求和函数,sum(x,2)表示矩阵x的横向相加,求每行的和,结果是列向量。 而缺省的sum(x)就是竖向相加,求每列的和,结果是行向量。利用sum()函数可求出各像素点的和

程序如下: image_sumzy1=sum(sum(Y)) image_sumzy2=sum(sum(F))

3.6.2计算结果

图像各像素点值的和分析结果如下图所示

17

武汉理工大学《Matlab课程设计》课程设计

图3.7 像素的点和分析

3.7各像素点值的标准差的获取 3.7.1引用函数

MATLAB中提供的std()函数可求出标准差。std(x) 算出x的标准偏差。 x可以是一行的matrix或者一个多行matrix矩阵。

如果只有一行,那么就是算一行的标准偏差,如果有多行,就是算每一列的标准偏差。

std(x,a)也是x的标准偏差但是a可以=0或者1.如果是0和前面没有区别,如果是1就是最后除以n,而不是n-1. std (x, a,b)这里a表示是要用n还是n-1,如果是a是0就是除以n-1,如果是1就是除以n。b这里是维数,比如说 1 2 3 4 4 5 6 1

如果b 是1,就是按照行分,如果b是2就是按照列分 如果是三维的矩阵,b=3就按照第三维来分数据。

求个像素点值标准差程序如下: image_stdzy1=std2(Y(:)) image_stdzy2=std2(F(:))

3.7.2计算结果

图像标准差分析结果如下图所示

18

武汉理工大学《Matlab课程设计》课程设计

图3.8 标准差分析

3.8各像素点值的方差的获取 3.8.1引用函数

MATLAB中提供的var()函数可求出方差 程序如下:

image_varzy1=var(double(Y(:))) image_varzy2=var(double(F(:)))

3.8.2计算结果

图像方差分析结果下图所示

图3.9 方差分析

19

武汉理工大学《Matlab课程设计》课程设计

3.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引用函数

MATLAB中提供的corrcoef函数可求出两数组间的相对系数。 程序如下:

image_corrcoefzy=corrcoef(double(Y),double(F))

3.11.2计算结果

图像zy1和zy2的相对系数分析结果如下图所示

20

本文来源:https://www.bwwdw.com/article/o9bg.html

Top