
Matlab图形处理课件.ppt
35页MATLAB,的图形处理功能,Matlab图形处理,主要内容 二维图形 三维图形 四维表现图 图形处理的基本技术 图形处理的高级技术 动画,2,Matlab图形处理,图形可视化技术一直是数学计算人员所喜爱的和追求的一项技术,因为不管是数值计算还是符号计算,无论计算多么完美、结果多么准确,人们还是很难直接从大量的数据堆或符号堆中感受它们的具体含义人们更喜欢直接用眼睛看到直观的图形因此,对任何数学计算人员来说,可视化技术都是必须掌握的,MATLAB的图形工具箱从简单的点、线、面处理发展到集二维图形、三维图形甚至四维表现图和对图进行着色、消隐、光照处理、渲染及多视角处理等多项功能于一身的强大功能包,3,Matlab图形处理,二维图形,1. 基本绘图命令,二维图形的绘制是Matlab语言图形处理的基础,也是绝大多数数值计算中广泛应用的图形方式之一在进行数值计算的过程中,用户可以方便地通过各种Matlab函数将计算结果图形化,以实现对结果数据的深层次理解,1). 当plot函数仅有一个输入变量时,y=1 3 2 4 2 2.5 1; plot(y) %以y的索引坐标为横坐标画图 y=rand(100,1); %100*1维的随机数 plot(y) %绘制随机数的图形 x=rand(100,1); y=rand(100,1); z=x+y.*i; plot(z) %以实部为横坐标,虚部为纵坐标绘图,4,Matlab图形处理,2).当plot函数有两个输入变量时 x=0:0.01*pi:pi; y=sin(x).*cos(x); plot(x,y) (3).当plot函数有三个输入变量时 plot(x,y,s) % s为图形显示属性选项 例如: x=1:0.1*pi:2*pi; y=sin(x); z=cos(x); plot(x,y,-b) plot(x,z,-.rd,5,Matlab图形处理,6,Matlab图形处理,2. 特殊的二维图形函数 (1). 特殊坐标系的二维图形函数 (a). 对数坐标下的图形 semilogx(x,y,s) %以x为对数坐标 semilogy(x,y,s) %以y为对数坐标 loglog(x,y) %以x,y为对数坐标 例如: x=1:0.1*pi:2*pi; y=sin(x); semilogx(x,y,*b,b). 极坐标系下的图形绘制 函数: polar(theta,rho,s) 例如: x=0:0.01*pi:4*pi; y=sin(x/2)+x; polar(x,y,-b,7,Matlab图形处理,2). 二维特殊函数图(下表为二维特殊图形函数,8,Matlab图形处理,例1 绘制条形图、矢量图、函数曲线图、柄状图、 等高线图、填充等高线图 bar(x,y) feather(x,y) fplot(fun,lim) pie(x, note) contour(z,n) %z为数值矩阵,n为等高线条数 contourf(z,n) %填充等高线函数,9,Matlab图形处理,三维图形,1. 基本绘图命令 (1). plot3函数 格式:plot3(x,y) %x是向量或矩阵 plot3(x,y,s) %s是属性 plot3(x1,y1,s1,x2,y2,s2,x3,y3,s3) %组合绘图,10,Matlab图形处理,2). 网图函数,3). 着色函数 surf(x,y,z,c) 例3 mesh 绘制三维面图 meshc 带等高线的面图 meshz 带屏蔽的面图,11,Matlab图形处理,特殊的图形函数,例4 绘制三维饼状图/柱面图/球面图,12,Matlab图形处理,四维表现图,对于三维图形,通常可以利用z=f(x,y)的确定或不确定的函数关系来绘制可视化图形,此时自变量是二维的。
而在高等物理、力学等的研究当中经常会遇到v=v(x,y,z)的函数此时自变量是三维的,而图形应当是四维的但是由于我们所处空间和思维的局限性,在计算机的屏幕上只能表现出三个空间变量为了表现四维图像,引入了三维实体的四维切片色图,它由函数slice来实现,其调用格式如下,slice(X,Y,Z,V,Sx,Sy,Sz): 绘制向量Sx, Sy, Sz中的点沿x,y,z中的点x,y,z方向的切片图数组X,Y,Z用来定义V的坐标在每一点的颜色必须由对容量V的插值来决定V必须是MN P阶的矩阵,13,Matlab图形处理,例5 可视化函数 ,自变量的变化范围分别为-2x2,-2y2,-2z2,x,y,z = meshgrid(-2:.2:2, -2:.25:2, -2:.16:2); v = x .* exp(-x.2 - y.2 - z.2); slice(x,y,z,v,-1.2 .8 2,2,-2 -.2,14,Matlab图形处理,15,Matlab图形处理,图形处理的基本技术,1. 图形控制,2. 图形的标注,坐标轴的控制函数 axis(xmin,xmax,ymin,ymax,平面的坐标网图函数 grid on/grid off,坐标轴标注 xlabel(标注,属性) /ylabel /zlabel,例如x=1:0.1*pi:2*pi; y=sin(x); plot(x,y); xlabel(x(0-1pi),FontWeight,bold); ylabel(y=sin(x),FontWeight,bold) title(正弦函数,FontSize,12,FontWeight,bold,FontName,隶书,16,Matlab图形处理,文本标注 text(x,y, 标注文本及控制字符串,交互式文本标注 gtext,图例标注 legend(标注1,标注2,3. 图形的保持与子图,hold onhold offsubplot(m,n,p,17,Matlab图形处理,图形处理的高级技术,1.颜色映像,图形的一个重要因素就是图形的颜色,对于数值计算,颜色在图形显示中所起的作用不仅仅是美观,主要是它能够提供给用户另外一附加维数第四维,Matlab采用颜色映像来处理图形颜色,也即RGB色系。
该方法在Matlab语言内的实现是借助于矩阵来完成的,该矩阵为三列矩阵,每一列代表R(红色)、G(绿色)和B(蓝色)中的一个颜色,三者综合构成对应的颜色下表示一些常用的颜色映像元素,18,Matlab图形处理,19,Matlab图形处理,以上颜色映像在默认状态下均为64*3的颜色矩阵,每个颜色映像均描述了64种颜色的RGB属性,按一定规律将各种颜色的映像元素综合成一映像矩阵即构成了Matlab语言的颜色映像几种常用的Matlab语言内置的颜色映像如下表所示,20,Matlab图形处理,对于绝大多数的线图函数,如plot、plot3、contour等,一般不需要颜色映像来控制其色彩显示,而对于面图函数,如mesh、surf等,则需要调用颜色映像,1) Matlab语言提供的调用颜色映像的函数为colormap,调用格式如下,colormap(colormap) 其中,输入变量colormap为一个三列矩阵,行数不限,该矩阵可以是上表所示的颜色映像,也可以为用户自定义的颜色映像矩阵,例如: colormap(pink(8); 此命令是定义当前窗口的颜色映像为柔和色,其颜色定义有8种,21,Matlab图形处理,2) 完成对颜色映像的定义后,用户就可以调用所定义的颜色映像为图形服务,具体的有pcolor、rgbplot及colorbar等函数。
(2-1) 函数pcolor为伪色函数,顾名思义,伪色并不是真正的颜色,而是通过颜色的不同来反应相应的数值的大小其调用格式如下,pcolor(C): 其作用相当于当前颜色映像为矩阵C进行“着色”,即根据元素的大小在当前颜色映像中进行插值着色 函数pcolor的使用一般与函数shading相结合,shading的作用在于以不同方式为图形着色,其调用格式如下: shading控制字符串:这里控制字符串主要有三种形式:faceted、interp和flat,22,Matlab图形处理,其中faceted为默认形式,以平面作为着色单位;interp已插值形式为图形的像点着色;flat以平滑形式定义着色方式 对于函数pcolor,其着色方式默认为faceted方式,可以通过调用shading加以修改,例如:(i) 绘制矩阵rosser的伪色图 colormap(hot(80); pcolor(rosser); shading interp (ii) 绘制矩阵peak的伪色图 colormap(flag(20); pcolor(peaks); shading flat,23,Matlab图形处理,2-2) 函数rgbplot是一种直接显示颜色的函数。
其调用格式如下: rgbplot(colormap) 即该函数的输入变量本身就是一个颜色映像,或颜色映像相似的数值矩阵,其作用是将矩阵的三列分别以红、绿、蓝色绘出,例如:rgbplot(hot(80) 此命令将绘出颜色映像hot(80)的RGB三色图 通过对颜色映像的RGB三色图的分析可以得到该颜色映像的色彩变化规律,能够更好地了解该颜色映像的图式效果,24,Matlab图形处理,2-3) 第三个用来显示颜色映像,同时也是最为常用的函数是colorbar该函数将在当前的的图型中显示颜色标尺,用来反应当前使用的颜色映像,并且以此反映图形中数据的相对大小其调用格式如下: colorbar(vert): 垂直显示颜色标尺 colorbar(horiz):水平显示颜色标尺,例如:对色图添加颜色标尺 X,Y,Z=peaks; mesh(X,Y,Z); colormap(hot(80); colorbar,25,Matlab图形处理,2-4) 背景颜色操作函数 colordef,colordef none %将图形背景与图形窗口背景设为相同 x,y,z=peaks; mesh(x,y,z) colordef black %将图形背景设置为黑色 x,y,z=peaks; mesh(x,y,z) colordef white %将图形背景设置为白色 x,y,z=peaks; mesh(x,y,z,除了上述介绍的颜色处理函数外,Matlab语言中对背景颜色可以用colordef进行操作,26,Matlab图形处理,2. 视角与光照,Matlab语言还提供了对图形进行视角及光源控制的功能。
所谓视角就是图形展现给用户的角度,而所谓光照就是图形色彩强弱变化的方向通过这两种方法可以丰富Matlab对图形的处理,1). 视角控制函数 view、viewmtx及rotate3d x,y,z=peaks; colormap(hot) mesh(x,y,z) xlabel x ylabel y view(45,45,27,Matlab图形处理,2). 光照控制函数 在Matlab语言中还提供了许多对光照进行控制的操作,例如:对于三维高斯分布图,将光源设置在(1,1,1) x,y,z=peaks; mesh(x,y,z) light(position,1,1,1,28,Matlab图形处理,Matlab语言提供的光源模式函数为lighting该函数的的调用格式如下: lighting 光源模式 光源模式为flat、gouraud、phong以及none等其中flat模式为平面模式,图形的光照单元为图形网格,这时能够大量节省系统资源,但图形效果较差,这是默认的模式;gouraud为点模式,光照单元为图形的象素点;phong不仅以象素作为光照的基本单元,而且还计算分配了各点的反射比;当设置为none时,将关闭图形光源功能。
例如:设置光源模式 x,y,z=peaks; mesh(x,y,z) light(position,1,1,1) lighting pong,29,Matlab图形处理,3. 图象处理,Matlab语言提供了对图形的处理功能,用户可以利用提。












