1、数字图像处理基础详解演示文稿数字图像处理基础详解演示文稿(优选)数字图像处理基础(优选)数字图像处理基础第二章 数字图像处理基础模拟世界模拟世界 - - 数字图像数字图像- - 存储存储数字化数字化黑白图像黑白图像灰度图像灰度图像彩色图像彩色图像各种颜色各种颜色模型模型BMPBMPJPEGJPEGGIFGIF光光(来自百度百科来自百度百科http:/ 可见光 英文名称: visible light 定义1: 电磁波谱中波长约在0.390.76m范围内且为肉眼可见的电磁辐射。 应用学科: 大气科学(一级学科);大气物理学(二级学科) 定义2: 波长在380380780nm780nm范围能引起视觉
2、的电磁波。 应用学科: 地理学(一级学科);遥感应用(二级学科)光光(来自百度百科来自百度百科http:/ 图像数字化图像数字化(Image Digitization)成像系统成像系统场景场景:模拟图像模拟图像成像平面成像平面数字化结果数字化结果2.1.1 采样与量化采样与量化(Sampling , Quantization)n 采样是将在空间上连续的图像转换成离散的采样点(即像素)集的操作。由于图像是二维分布的信息,所以采样是在x轴和y轴两个方向上进行。2.1.1 采样与量化采样与量化(Sampling , Quantization)n 量化:取样后图像的每个样点的取值范围分成若干区间,量化
3、:取样后图像的每个样点的取值范围分成若干区间,并仅用一个数值代表每个区间中的所有取值。量化的结果是并仅用一个数值代表每个区间中的所有取值。量化的结果是图像能够容纳的颜色总数,它反映了采样的质量。图像能够容纳的颜色总数,它反映了采样的质量。光光谱谱反反射射图像的某一行图像的某一行举例:如图光谱的反射值范围在01之间,采样区间为0.1,则量化后,光谱的离散反射值有多少个?如采样区间为0.01,则量化后,光谱的离散反射值有多少个?2.1.2 采样分辨率的影响采样分辨率的影响Sampling is the principal factor determining the spatial resolut
4、ion of an image.2.1.2 采样分辨率的影响采样分辨率的影响sampling checker boards 2.1.4 量化精度的影响量化精度的影响256-level128-level64-level32-level16-level8-level4-level2-levelFalse contour假轮廓n1. 色度学基础n灰度图像的像素值是光强. f (x,y).计算机显示一幅彩色图像时,每一个像素的颜色是通过三种基本颜色(红、绿、蓝)合成的。彩色图像f (x,y, ). :颜色光谱n(1) 三色原理:根据三原色学说,可见光谱内任何颜色都可由红、绿、蓝三色组成。n人眼的视觉:
5、生理学试验表明,视网膜上的光感受器可分锥细胞和杆细胞。杆细胞为暗视器官,主要功能是辨别亮度信息;锥状细胞是明视器官,其功能是分辨是颜色。锥细胞对彩色敏感,杆细胞对亮度敏感。锥细胞可分为3类,分别对红、绿、蓝敏感。2.2色度学基础与颜色模型色度学基础与颜色模型人类感光细胞的敏感曲线人类感光细胞的敏感曲线BlueGreenRed2.2色度学基础与颜色模型色度学基础与颜色模型n(2) 颜色颜色的三个属性n颜色颜色是外界光刺激于人的视觉器官而产生的主观感觉。颜色可分两大类:非彩色和彩色。n非彩色:黑白色非彩色:黑白色n彩色:彩色:根据人的视觉系统感知彩色的方式,颜色有三个基本属性,分别是色色调、饱和度
6、、亮度调、饱和度、亮度。n色调色调:人的感官对不同颜色的感受,如红色、绿色和蓝色。n饱和度饱和度:颜色的纯度,饱和度越大,颜色看起来就会越鲜艳。n强度强度:对应成像亮度和图像灰度,是颜色的明亮程度。2.2色度学基础与颜色模型色度学基础与颜色模型n2. 颜色模型颜色模型(在各种行业中如何生成彩色)n按用途可分为三类:计算颜色模型、视觉颜色模型和工业颜色模型n(1) 计算颜色模型计算颜色模型n用于进行颜色的理论研究。常见的RGB模型、CIE XYZ模型、Lab模型等均属于此类型。n(2) 视觉颜色模型视觉颜色模型是指与人眼对颜色感知的视觉模型相似的模型,它主要用于色彩的理解,常见的有HSI模型、H
7、SV模型和 HSL模型。n(3) 工业颜色模型工业颜色模型侧重于实际应用,包括彩色显示系统、彩色传输系统 及电视传输系统等。如印刷中用的CMYK模型、电视系统用YUV模型、用于彩色图像压缩的YCbCr模型等。2.2色度学基础与颜色模型色度学基础与颜色模型RGB (Red, Green, Blue)R:200 G:50B:120n2. 颜色模型nRGB颜色模型n按照CIE规定的三基色构成表色系统。自然界的任一种颜色都可通过这三种基色按不同比例混合而成。由于RGB模型将三基色同时加入以产生新的颜色,所以,它是一个加色系统。2.2色度学基础与颜色模型色度学基础与颜色模型R:200 G:50B:120
8、n2. 颜色模型nRGB颜色模型的优点n(1) RGB模型与显示器等设备有着较n好的对应关系。n(2) 在RGB显示器中,有三种荧光粉能够分别发出红、绿、蓝三种颜色,三个相邻的荧光点构成了一个像素,这些荧光点受到三束分别为c1,c2,c3的电子束的轰击,会发出不同的亮度,通过物理上的叠加或混合,便可显示出相应的颜色。2.2色度学基础与颜色模型色度学基础与颜色模型n2. 颜色模型nRGB颜色模型的一个例子Matlab中如何产生左边的RGB图像(图像大小为128x128) % 如何产生一幅彩色图像如何产生一幅彩色图像Red=zeros(128,128);Red(1:64,1:64)=1;Green
9、=zeros(128,128);Green(65:128,1:64)=1;Blue=zeros(128,128);Blue(1:64,65:128)=1;I=cat(3,Red,Green,Blue);imshow(I);2.2色度学基础与颜色模型色度学基础与颜色模型n2. 颜色模型颜色模型nCMY模型和模型和CMYK模型模型CMY模型是硬拷贝设备上输出图像的颜色模型,常用于彩色打印、印刷行业。它的三原色是青(Cyan)、品红(Magenta)、黄(Yellow),分别为红、绿、蓝的补色,称为减色基。在CMY中,颜色是从白光白光中减去减去一定成分成分得到的,而不是像素RGB颜色模型那样,在黑光
10、中增加某种颜色。CMY坐标可以从RGB模型中得到:1255,0,0025525510,255,0255025510,0,2552552550CRMGYB 青青品红品红红红2.2色度学基础与颜色模型色度学基础与颜色模型n2. 颜色模型nCMY模型和CMYK模型(5) 由于在印刷时CMY模型不可能产生真正的黑色,因此在印刷业中实际上使用的是CMYK颜色模型,K为第四种颜色,表示黑色。用以弥补三个颜色混合不够黑的问题。(6) Matlab中从RGB到CMY的转换。rgb_I=imread(peppers.png);cmy_I=imcomplement(rgb_I);imshow(rgb_I);fig
11、ure,imshow(cmy_I);2.2色度学基础与颜色模型色度学基础与颜色模型n2. 颜色模型颜色模型nHSI 颜色模型颜色模型n1915年美国色彩学家孟塞尔孟塞尔提出,它反映了人的视觉系统感知彩色的方式,以色调、饱和度和强度三种基本特征量来感知颜色。n色调色调H (Hue): 与光波的波长有关,它表示人的感官对不同颜色的感受,如红色、绿色、蓝色等,n饱和度饱和度(Saturation): 表示颜色的纯度,纯光谱色是完合饱和的,加入白光会稀释饱和度。饱和度越大,颜色看起来就会鲜艳,反之亦然。n强度强度I (Intensity):对应成像亮度和图像灰度,是颜色的明亮程度。nHSI模型建立基于
12、两个重要的事实: (1) I分量与图像的彩色信息无关; (2) H和S分量与人感受颜色的方式是紧密相联的。这些特点使得HSI模型非常适合彩色特性检测与分析。2.2色度学基础与颜色模型色度学基础与颜色模型n2. 颜色模型nHSI 颜色模型nRGB颜色模型转换为HSI颜色模型的公式见教材205页Is红红绿绿蓝蓝HH: 一个角度一个角度S:1-3*min(r,g,b)i=(R+G+B)/(3*255)2.2色度学基础与颜色模型色度学基础与颜色模型n2. 颜色模型nHSI 颜色模型I:亮度s红红绿绿蓝蓝HS:饱和度H:色度n任何一个颜色都属于圆柱体中的一个点P,该点投影到底面圆为Q。nH: Q与x轴的
13、夹角。nS:Q到圆心O的距离。nI:PQ的距离2.2色度学基础与颜色模型色度学基础与颜色模型n2. 图像去雾图像去雾Downloaded at http:/ 图像去雾图像去雾Downloaded at http:/ 图像类型图像类型n infra-red 红外红外n ultra-violet 紫外紫外n radio-waves (radio astronomy) 无线电波无线电波n visible light 可见光可见光n micro-waves (radar) 微波雷达微波雷达n roentgen (tomography)(X线断层摄影术线断层摄影术)n sound-waves (echo
14、scopy, sonar)n electrons (microscopy)(电子显微镜电子显微镜)n positron emission (PET-scan)(正电子放射)(正电子放射)n magnetic resonance (NMR)(磁共振)(磁共振)2.3 图像类型图像类型Gamma射线、射线、X射线、可视图图像、雷达图像射线、可视图图像、雷达图像图像可通过不同的设备获得图像可通过不同的设备获得2.3 图像类型图像类型三种图像类型三种图像类型:n黑白图像黑白图像 Binary images I(x,y) 0 , 1 n灰度图像灰度图像 Gray-scale images I(x,y)
15、0.255n彩色图像彩色图像 Color images IR(x,y) IG(x,y) IB(x,y)2.3 图像类型图像类型n 高光谱图像高光谱图像 Hyper Spectral Image I(x,y,k) k=1,.,m 2.3.1 黑白图像黑白图像 指图像的每个像素只能是黑或者白指图像的每个像素只能是黑或者白,没有中间的过渡,故又称为值图像,没有中间的过渡,故又称为值图像。2值图像的像素值为值图像的像素值为0、1。011100001I2.3.2 灰度图像灰度图像 灰度图像是指每个像素的信息由灰度图像是指每个像素的信息由一个量化的灰度级来描述的图像,没一个量化的灰度级来描述的图像,没有彩
16、色信息。有彩色信息。100220250180501202001500I早期的黑白电影2.3.3 彩色图像彩色图像 彩色图像是指每个像素的信息由彩色图像是指每个像素的信息由RGB三三原色构成的图像,其中原色构成的图像,其中RGB是由不同的灰度是由不同的灰度级来描述的。级来描述的。00255800255240240255R02550160255255801600G25525525524000160800B2.3.3 彩色图像彩色图像2.4 图像文件格式图像文件格式 数字图像有多种存储格式,每种格式一般由不同的软件公司开发所支持。 文件一般包含文件头文件头和图像数据图像数据。就像每本书都有封面,目录
17、,它们的作用类似于文件头,通过文件头我们可读取图像数据。 文件头的内容由该图像文件的公司决定,一般包括文件类型 、文件制作者、制作时间、版本号、文件大小等内容,还有压缩方式。2.4 BMP图像文件格式图像文件格式 Windows中定义了两种位图文件类型:一般位中定义了两种位图文件类型:一般位图文件格式,设备无关位图文件格式。图文件格式,设备无关位图文件格式。 BMP图像文件的结构可以分为如下三个部分图像文件的结构可以分为如下三个部分:文件头(由位图像文件和位图信息头两部分组:文件头(由位图像文件和位图信息头两部分组成),调色板数据,图像数据。成),调色板数据,图像数据。 BMP文件头的长度为固
18、定值文件头的长度为固定值54个字节;其中个字节;其中BITMAPFILEHEADER结构结构14字节,字节,BITMAPINFOHEADER结构结构40字节。字节。 BITMAPFILEHEADER包含文件类型和大小等信息,包含文件类型和大小等信息,定义为:定义为:typedef struct tagBITMAPFILEHEADER WORDbfType;/*代表代表BMP格式,必为格式,必为“BM”即即“0 x4d42”*/DWORD bfSize; /* BMP文件总字节数文件总字节数*/ WORD bfReserved1;/*预留,必为预留,必为0*/WORD bfReserved2;
19、/*预留,必为预留,必为0*/ DWORD bfOffBits; /*以字节为单位,表示图像数据在文件内的起始地址,即以字节为单位,表示图像数据在文件内的起始地址,即图像数据针对文件头的偏移量图像数据针对文件头的偏移量*/ BITMAPFILEHEADER 2.4.1 位图文件头位图文件头BITMAPFILEHEADERBITMAPINFOHEADERBITMAPINFOHEADER包含包含位图的尺寸和颜色格式等信息,其定义如下:位图的尺寸和颜色格式等信息,其定义如下:typedef struct tagBITMAPINFOHEADERDWORDbiSize;/*bitmapinfo结构的字节
20、数为结构的字节数为4040*/ LONGbiWidth; /*图像宽度图像宽度(像素数像素数)*/ LONG biHeight; /*图像高度图像高度(像素数像素数)*/WORDbiPlanes; /*目标设备平面数,总为目标设备平面数,总为1*/WORDbiBitCount;/*每像素位数,可为每像素位数,可为1、4、8或或24*/ / /* *数据压缩方式,为数据压缩方式,为0(0(不压缩不压缩) );1(BI_RLE8)1(BI_RLE8)或或2(BI_RLE4)*/DWORDbiCompression;DWORDbiSizeImage; / 位图的大小,以字节表示位图的大小,以字节表示
21、*/LONGbiXPelsPerMeter; /*设备水平分辨率设备水平分辨率,以每米像素数为单位以每米像素数为单位*/LONGbiYPelsPerMeter; /*设备垂直分辨率设备垂直分辨率,以每米像素数为单位以每米像素数为单位*/DWORDbiClrUsed;/*位图使用的颜色数位图使用的颜色数,0表示所有颜色都使用表示所有颜色都使用*/ DWORDbiClrImportant;/*重要的颜色索引重要的颜色索引,0表示所有颜色均重要表示所有颜色均重要*/ BITMAPINFOHEADER2.4.2 位图信息头位图信息头BITMAPINFOHEADER 位图数据阵列记录了位图中的每一个像素
22、值。位位图数据阵列记录了位图中的每一个像素值。位图数据的长度由图像尺寸、像素的位数和压缩方式等图数据的长度由图像尺寸、像素的位数和压缩方式等共同决定。共同决定。 实际尺寸可由文件头中的第二项实际尺寸可由文件头中的第二项“文件大小文件大小”减减去第五项去第五项“数据偏移数据偏移”值得到。值得到。 在生成位图文件时,在生成位图文件时,Windows Windows 从位图的左下角开从位图的左下角开始始( (即从左到右从下到上即从左到右从下到上) )逐行扫描位图,将位图的像逐行扫描位图,将位图的像素值一一记录下来,这些记录像素值的字节组成了位素值一一记录下来,这些记录像素值的字节组成了位图阵列。图阵
23、列。 对于对于2424位位BMPBMP,其像素数据由蓝绿红分量组成。,其像素数据由蓝绿红分量组成。2.4.3 位图数据位图数据2.5 OpenCV2.3图像处理函数图像处理函数nOpenCV历史nOpenCV使用介绍OpenCV历史历史nOpenCV的全称是:Open Source Computer Vision Library nOpenCV于1999年由Intel建立,现在由Willow Garage提供支持。OpenCV是一个基于BSD许可证授权(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效由一系列 C 函数和少量 C+
24、类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV历史历史n计算机视觉市场巨大而且持续增长,且这方面没有标准API,目前的计算机视觉软件大概有以下三种:n1.研究代码(慢,不稳定,独立并与其他库不兼容) n2.耗费很高的商业化工具(比如Halcon, MATLAB+Simulink) n3.依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是目前的现状. 而标准的API将简化计算机视觉程序和解决方案的开发。OpenCV致力于成为这样的标准API。 nOpenCV致力于真实世界的实时应用,通过优化的C
25、代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。OpenCV历史历史n1999年1月,CVL项目启动。主要目标是人机界面,能被UI调用的实时计算机视觉库,为Intel处理器做了特定优化。n2006年,支持Mac OS的OpenCV 1.0发布。 n2011年8月,OpenCV 2.3发布OpenCV提供的视觉处理算法非常丰富,并且它部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持也可以完整的编译链接生成执行程序,所以很多人用它来做算法的移植,
26、OpenCV的代码经过适当改写可以正常的运行在DSP系统和单片机系统中,目前这种移植在大学中经常作为相关专业本科生毕业设计或者研究生课题的选题。OpenCV教程教程:http:/ 基本数据结构基本数据结构 基本上讲 MatMat 是一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是不同的维数)的指针。 OpenCV教程教程: 基本数据结构基本数据结构Mat A;A=imread(filename,CV_LOAD_IMAGE_COLOR)Mat D (A, Rect(10, 10, 100, 100) );
27、 / D为A中指定区域的数据Mat F = A.clone(); / 矩阵复制Mat M(2,2, CV_8UC3, Scalar(0,0,255); / 利用利用MAT函数创建函数创建矩阵矩阵一个一个Mat图像对象举例图像对象举例OpenCV教程教程: 图像扫描图像扫描OpenCV教程教程: 图像扫描图像扫描n 如何遍历图像中的每一个像素?n OpenCV的矩阵值是如何存储的?对多通道图像来说,矩阵中的列会包含多个子列,其子列个数与通道数相等。例如,RGB颜色模型的矩阵:注意:注意:子列的通道顺序是反过来的:BGR而不是RGB。很多情况下,因为内存足够大,可实现连续存储,因此,图像中的各行就
28、能一行一行地连接起来,形成一个长行。连续存储有助于提升图像扫描速度,我们可以使用 isContinuous() 来去判断矩阵是否是连续存储的. 相关示例会在接下来的内容中提供。OpenCV教程教程: 图像扫描图像扫描n 矩阵是否连续存储?要求图像每行所占宽度(单位:字节数)必须是必须是4 4的倍数的倍数。如果图像行数据所占宽度不是4的倍数,则必须补齐。举例:一幅32326464的彩色图像,其行数据所占宽度为64*3字节数,是4的倍数,无需补齐。 一幅32326565的彩色图像,其行数据所占宽度为65*3=195字节,不是4的倍数,需补充一个1个字节(值为0),才能达到要求。OpenCV教程教程
29、: 图像扫描图像扫描n 如何遍历图像中的每一个像素? / I: Mat图像图像int i,j;uchar *p;for (i=0;inRows;+i) p=I.ptr(i); /行指针行指针 for (j=0;jnCols;j+) pj=1; / 依次为该行的每个元依次为该行的每个元素赋值素赋值/ I: Mat 图像图像Mat _ _I=I;for(i=0;iI.rows;i+) for (j=0;iI.cols;j+) _I(i, j)0=value1; _I(i, j)1=value2; _I(i, j)2=value3; OpenCV教程教程: 基本图像操作基本图像操作n 获取像素的亮度
30、值获取像素的亮度值nScalar intensity = img.at(x, y); / 灰度图像(单通道)亮度值nVec3b intensity = img.at(x, y);nuchar blue = intensity.val0;nuchar green = intensity.val1;nuchar red = intensity.val2; / 彩色图像亮度值彩色图像亮度值n处理浮点图像(例如通对一个处理浮点图像(例如通对一个3通道图像进行通道图像进行Sobel运算得到的浮点图像)运算得到的浮点图像)nVec3f intensity = img.at(x, y);nfloat blu
31、e = intensity.val0;nfloat green = intensity.val1;nfloat red = intensity.val2;OpenCV教程教程: 基本图像操作基本图像操作n 定义定义2维和维和3维点维点nvector points;nvector points;n 底层操作底层操作nimg= scalar(0); / 图像全置为零图像全置为零nRect r(10,10, 100, 100); / 定义一个矩形区域,左上角为定义一个矩形区域,左上角为10,10,高度,高度和宽度为和宽度为100.nMat smallImg=img(r);n 将彩色图像转换为灰度图像
32、将彩色图像转换为灰度图像nMat img = imread(image.jpg); / loading a 8UC3 imagenMat grey;ncvtColor(img, grey, CV_BGR2GRAY);n 将图像的类型从将图像的类型从8UC1转为转为32FC1nsrc.convertTo(dst, CV_32F);OpenCV教程教程: 基本图像操作基本图像操作n 显示图像显示图像 OpenCV提供了方便查看图像的方法。提供了方便查看图像的方法。nMat img = imread(image.jpg);nnamedWindow(image, CV_WINDOW_AUTOSIZE)
33、;nimshow(image, img);nwaitKey();2.5 MATLAB图像处理简介图像处理简介n MATLAB简介n Matlab基本图像处理图像处理 2.5 MATLAB图像处理简介图像处理简介n MATLAB简介n使用复数矩阵做基本编程单元n书写简单,使用方便,演草纸式语言n功能强大,工具箱丰富,Image processing toolboxn图形功能强大n扩充能力强,交互性好2.5 MATLAB基本图像处理基本图像处理n 一个MATLAB图像处理的例子n RGB = RGB = imread(westconcordaerial.png);imread(westconcor
34、daerial.png);n figure, imshow(RGB); % figure, imshow(RGB); % 显示彩色图显示彩色图像像n Gray=rgb2gray(RGB); % Gray=rgb2gray(RGB); % 将彩色图像变将彩色图像变成灰度图像成灰度图像n imshow(Gray); % imshow(Gray); % 显示灰度图像显示灰度图像2.5 MATLAB基本图像处理基本图像处理n 图像类型图像类型n 图像文件的读写图像文件的读写n 矩阵的基本操作矩阵的基本操作数字图像处理附录数字图像处理附录图像类型n 灰度图像(Intensity Image)n 真彩色图
35、像(RGB Image)n 二值图像(BW Image) 2.5.1图像类型:灰度图像(Intensity Image)例如,用例如,用 imagesc 函数及函数及 colormap 函数函数显示一幅灰度图像。显示一幅灰度图像。I=imread(moon.tif);imagesc(I,0 256);colormap(gray); %原图像经灰度缩放原图像经灰度缩放后显示的灰度图像后显示的灰度图像 2.5.1图像类型:灰度图像(Intensity Image)2.5.1 图像类型:真彩色图像(RGB Image)例如:调用函数例如:调用函数 image 来显示来显示 RGB 图像。图像。 RG
36、B = imread(football.jpg); imshow(RGB);确定像素确定像素(12,9)的颜色,可在命令行中键入的颜色,可在命令行中键入 RGB(12,9,:)2.5.1 图像类型:真彩色图像(RGB Image)2.5.1 图像类型:二值图像(Binary Image)例如:显示例如:显示 二值图像。二值图像。 BW = imread( blobs.png); imshow(BW);2.5.1 图像类型:二值图像(Binary Image)2.5.2 图像文件的读写n 图像文件的读取A = imread(文件名,文件格式) A = imread(文件名.文件格式)X, map
37、 = imread(文件名,文件格式) n 图像文件的保存imwrite(A, 文件名,文件格式) imwrite(X,map, 文件名,文件格式) imwrite(.,文件名) imwrite(.,Parameter,Value,.) 2.5.3 矩阵的基本操作n 表达式表达式n 矩阵的输入矩阵的输入n 矩阵下标矩阵下标n 数字图像处理附录数字图像处理附录(1)表达式n 标量、向量和矩阵标量、向量和矩阵n 字符串字符串n 操作符操作符 (1)表达式:标量、向量和矩阵n 矩阵矩阵例如:例如:23矩阵矩阵a=1 2 3; 4 5 6n 向量向量例如:例如:31的列向量的列向量a=1; 2; 3n
38、 数组数组一维数组的数学原型是向量一维数组的数学原型是向量 二维数组的数学原型是矩阵二维数组的数学原型是矩阵 两行四列三页的三维数组两行四列三页的三维数组 (1,1,1)(1,2,1)(1,3,1)(1,4,1)(2,1,1)(2,2,1)(2,3,1)(2,4,1)(1,1,2)(1,2,2)(1,3,2)(1,4,2)(2,1,2)(2,2,2)(2,3,2)(2,4,2)(1,1,3)(1,2,3)(1,3,3)(1,4,3)(2,1,3)(2,2,3)(2,3,3)(2,4,3)页列行(1)表达式-标量、向量和矩阵字符串是用单引号来标示的字符串是用单引号来标示的。例如,例如,S=I H
39、ave a Dream. (1)表达式:字符串n 算术运算符例如:a=1 2 3,b=4 5 6;c=a*bd=a.*be=a.2f=a+2g=1:2:10h=1:10i=10:2:1(1)表达式:操作符n 关系运算符 如果关系成立则为1,如果关系不成立则为0n 逻辑运算符 逻辑运算符都是按元素操作的。 0表示逻辑假,任何非零值表示逻辑真n 运算符优先级 由高到低的次序: 括号算术运算符逻辑运算符关系运算符(1)表达式:操作符n 直接输入矩阵n 利用外部数据文件输入矩阵n 利用MATLAB内部函数与工具箱函数产生矩阵(2)矩阵的输入a=1 2 3;4 5 6;7 8 9 a=1,2,3;4,5
40、,6;7,8,9a=1:3;4:6;7:9b=(1:6)(2)矩阵的输入:直接输入矩阵(2)矩阵的输入:利用外部数据文件输入矩阵n函数函数load,读取事先已保存了的,读取事先已保存了的.mat数据文件数据文件,且数据文件中的内容是所需的矩阵且数据文件中的内容是所需的矩阵 n函数函数wavread,读取,读取Microsoft的的WAV格式的格式的音频文件音频文件 n函数函数imread,从图像文件中读取图像数据,从图像文件中读取图像数据 n函数函数fopen、fread、fclose构成的任意文件的构成的任意文件的读取读取 n eye建立单位阵建立单位阵 y=eye(n)y=eye(m,n)
41、 y=eye(m n)y=eye(size(A) 例如:例如: a=eye(4) %产生产生44的单位阵的单位阵 a1=eye(2,3) %产生产生23的单位阵的单位阵 eye只能生成二维矩阵只能生成二维矩阵 (2)矩阵的输入: 利用MATLAB内部函数与工具箱函数产生矩阵n ones建立全建立全1阵阵y=ones(n)y=ones(m,n) y=ones(m n)y=ones(d1,d2,d3,) y=ones(d1 d2 d3 )例如:例如: y=ones(3,2) a=8*ones(3,5)%产生产生35的常数阵的常数阵(2)矩阵的输入: 利用MATLAB内部函数与工具箱函数产生矩阵n
42、zeros建立全建立全0阵阵 y=zeros(n)y=zeros(m, n) y=zeros(m n)y=zeros(d1,d2,d3,) y=zeros(d1 d2 d3 )例如:例如: y=zeros(2)(2)矩阵的输入-利用MATLAB内部函数与工具箱函数产生矩阵n rand产生均匀分布的随机数数组产生均匀分布的随机数数组 y=rand(n)y=rand(m, n) y=rand(m n)y=rand(d1, d2, d3, ) y=rand(d1 d2 d3 )例如:例如: r1=rand(2, 3)%产生产生0,1之间均匀分布的随机矩阵之间均匀分布的随机矩阵 r2=5-10*ran
43、d(2, 3)%产生产生-5,5之间均匀分布的随机矩阵之间均匀分布的随机矩阵 (2)矩阵的输入:利用MATLAB内部函数与工具箱函数产生矩阵n randn产生正态分布的随机数和数组产生正态分布的随机数和数组y=randn(n)y=randn(m, n) y=rand(m n)y=randn(d1, d2, d3, ) y=randn(d1 d2 d3 )例如:例如: r3=randn(2,3) %产生均值为产生均值为0、方差为、方差为1的标的标准正态分布的随机矩阵准正态分布的随机矩阵 r4=2*randn(2,3)+3 %产生均值为产生均值为3、方差为、方差为4(22)的正态分布的随机矩阵的正态分布的随机矩阵(2)矩阵的输入-利用MATLAB内部函数与工具箱函数产生矩阵