资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,HYIT,1,6.1,图形对象与句柄,6.3,体积可视化,6.4,图形窗口的功能及设置,6.5,其他图形处理技术,第,6,章 高级图形处理功能,内容提要:,2,高层绘图与底层绘图的区别,高层绘图函数,是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的,,充分体现了,matlab,语言的实用性。,底层绘图函数,可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。,充分体现了,matlab,语言的开发性,3,6.1,图形对象与句柄,4,图形对象,图形对象是图形系统中最基本、最底层的单元,5,窗口对象,线对象,轴对象,6,面对象,轴对象,像对象,块对象,线对象,文字对象,7,Root,(,根屏幕,),Figure,(,图形窗口,),Axes,(,坐标轴,),Uicontrol,(,控件,),Uimenu,(,菜单,),Uicontextmenu,(,对象菜单,),light,(,光源,),image,(,图像,),line,(,线,),patch,(,块,),rectangle,(,矩形,),surface,(,面,),text,(,文本,),父对象,子对象,8,各层次图形对象是相互关联的,一般要先创建父对象,再创建子对象。,9,图形对象的类型,根对象,:,(最顶层,相当于计算机屏幕,)根对象不可以建立,在启动,MATLAB,时就自动创建,但可以设置他的属性以控制图形的显示。,图形窗口对象,figure,坐标轴 控件 菜单 对象菜单,图像,光源 线 块 矩形 面 文本,10,图形对象的属性,例,:,figure,位置 大小,1 1 640 480,颜色,0 0 0,line,a.,x,y,数据,b.,线的颜色,c.,线型,d.,线宽,图形对象是由属性来描述的,11,创建图形对象的底层函数,figure,创建图形窗口,uicontrol,图形界面控制,格式,:h=,uicontrol(,property,value),uimenu,创建用户界面菜单,格式,:,h=uimenu(,property,value),axes,创建轴对象,格式,:,h=axes(,property,),left,bottom,width,height,12,line,创建线对象,h=line(x,y,z),patch,创建块对象,h=patch(x,y,z,c),x,y,z,定义多边形,,c,确定填充颜色。,surface,创建面对象,h=surface(x,y,z,c),x,y,z,三维曲面坐标,,c,颜色矩阵。,image,显示图象,h=image(x);x,为图像矩阵,text,标注文字,h=text(x,y,string,),13,每个底层函数只能创建一个图形对象,并将它们置于适当的父辈对象中。,14,图形句柄,handle,句柄,:,一个对象从创建时就被赋予唯一标识。,句柄的值:是一个数或者一个矢量。,作用:利用句柄既可以操纵一个已经存在的图形对象的属性,也可以在建立图形对象时指定属性的值。,15,根屏幕,0,图形窗口,整数,表示图形窗口序号,其它对象,对应的实数,各图形对象的句柄数据格式,所有能创建图形对象的,matlab,函数都可给出所创建图形对象的句柄,16,例:创建,1,号窗口,返回句柄,h=figure(1),h=1,返回值为窗口号数,例:,h=line(1:6,1:6),创建线对象的同时也建立其唯一的句柄,例:,h=surf(peaks),17,获得与设置句柄所代表的图形对象的属性,句柄属性的设置与修改,get,获得句柄图形对象的属性,set,改变图形对象的属性,格式:,get(h,属性名,),获得指定对象的指定的属性,get(h),获得指定对象的全部属性,set(h,属性名,属性值,),设置指定对象的属性,set(h):,显示指定对象的全部可设置属性及选项,18,专用函数:,gcf,获取当前图形窗口的句柄,Get Current Figure,gca,获取当前坐标轴的句柄,Get Current Axes,gco,获取当前图形对象的句柄,Get Current Object,格式:,h=gcf,将当前窗口对象的句柄返回,h,get(h),或,get(gcf),查阅当前窗口对象的属性,delete(gcf),删除当前窗口的属性,get(gcf,children,),当前窗口对象的子代,19,【,例,6-1-1】,绘制正弦曲线,修改线为红色并加宽,自定义坐标轴的显示刻度,设置窗口黑色。,20,clc;clear;close all,t=-pi:pi/20:pi;y=sin(t);,h=plot(t,y),set(,h,color,r,LineWidth,3),ha=gca,set(,gca,xtick,-pi:pi/2:pi,.,xticklabel,-pi,-pi/2,0,pi/2,pi,color,k),hf=gcf,set(,hf,name,NO.1 sin(x),M-file,断点运行演示,21,get(gca,children,),思考:,如果不记得属性符号及其选项该怎么办?,M-file,中,h ha hf,应用继承关系还可以如何求得?,22,【,例,6-2】【,例,6-3】【,例,6-4】,自学,23,【,例,6-2】,h=surf(sphere(30);,figure,h=surf(sphere(30);,set(h,EdgeColor,g),24,【,例,6-1-2】,作正弦、余弦曲线,将正弦曲线改为虚线,将余弦曲线幅度减为,1/2,高度,25,x=0:2*pi/180:2*pi;,y1=sin(x);y2=cos(x);,plot(x,y1,x,y2,x,zeros(size(x),k:),26,首先查询各对象的属性,get(gcf),h=get(gcf,children),h=,60.0004,hh=get(gca,children),hh=,70.0004,69.0004,68.0004,27,修改属性,y11=get(hh(2),ydata);,y22=y11/2;,set(hh(2),ydata,y22),set(hh(3),linestyle,:),28,【,例,6-1-3】,用句柄修改图形,exp6_1_3.m,exp6_1_3a.m,29,clc;clear;close all;,subplot(position,0.1,0.5,0.2,0.2),X0,Y0,Z0=sphere(20);,X=0.1*X0;Y=0.1*Y0;Z=0.1*Z0;,surf(X,Y,Z),shading interp,hidden off;axis equal;axis off,subplot(position,0.1,0.1,0.8,0.4),surf(5*membrane),light;Lighting none,30,6.3,体积可视化,31,h=streamline(X,Y,Z,U,V,W,startx,starty,startz),绘制三维矢量数据,U,,,V,,,W,的流线图并返回图形对象的柄。,数组,X,,,Y,,,Z,定义了,U,,,V,,,W,的坐标;,startx,starty,startz,定义了流线图的起点位置。,6.3.1,流线图,streamline,32,h=streamline(U,V,W,startx,starty,startz),此时,假定,X,Y,Z=meshgrid(1:N,1:M,1:P),,其中,M,N,P=size(U),h=streamline(X,Y,Z),X,Y,Z,为单元数组,该数组是由顶点数据计算得到的,33,h=streamline(X,Y,U,V,startx,starty),绘制二维矢量流线图,h=streamline(,,,options),指定绘制流线图的选项,,options,可以定义为只有一个元素的矢量(步长)或有两个元素的矢量(步长和流线顶点的最大个数)。不定义则默认。,34,load wind,sx,sy,sz=meshgrid(80,20:10:50,0:5:15);,h=streamline(x,y,z,u,v,w,sx,sy,sz);,set(h,Color,red),view(3),【,例,6-13】,利用数据集,wind,绘制流线图。,35,36,streamparticles(vertices),绘制矢量的流点图,流点由标记代表,可以显示流线的位置和速率,vertices,为一个二维或三维矢量的单元数组,6.3.2,流点图,streamparticles,37,streamparticles(,PropertyName,PropertyValue,),使用指定的属性和指定值控制流点,.,流点的属性名称,属性描述,Animate,流点动画,可设置动画重复次数,FrameRate,动画频率,ParticleAlignment,流点是否与流线对齐,38,load wind,sx sy sz=meshgrid(80,20:1:55,5);,verts=stream3(x,y,z,u,v,w,sx,sy,sz);,sl=streamline(verts);,iverts=interpstreamspeed(x,y,z,u,v,w,verts,.025);,axis tight;view(30,30);daspect(1 1.125),camproj perspective;camva(8),set(gca,DrawMode,fast),box on,streamparticles(iverts,35,animate,10,ParticleAlignment,on),【,例,6-14】,利用,wind,绘制流点图。,39,40,streamribbon(X,Y,Z,U,V,W,startx,starty,startz),绘制三维矢量数据,U,、,V,、,W,的流带图,数组,X,、,Y,、,Z,定义了,U,、,V,、,W,的坐标,startx,、,starty,、,startz,定义了流带图的起点位置,6.3.3,流带图,streamribbon,41,load wind,sx sy sz=meshgrid(80,20:10:50,0:5:15);,daspect(1 1 1),streamribbon(x,y,z,u,v,w,sx,sy,sz);,axis tight,shading interp;,view(3);,camlight;lighting gouraud,【,例,6-15】,利用,wind,绘制流带图。,42,43,6.4,图形窗口的功能及设置,44,操作过程,(,在图形窗口下,),:,File Preferences Figure,Copy Template,6.4.1,图形复制参数设置,45,6.4.2,图形对象设置,1,)图形窗口(,figure,),对象图形窗口中,editFigure properties,2),坐标轴对象(,axes,),图形窗口中,edit axis propertie,打开坐标轴对象参数设置窗口。,46,3,)线对象,(line),edit,Current Object properties,打开线对象参数设置窗口,data,绘图数据,style,绘图样式,info,信息,47,4),面对象,(surface),edit,Current Object properties,打开面对象参数设置窗口,Data,(,数据,),style,(,绘图样式,如绘图曲面的颜色,绘图点类型、尺寸、边缘颜色等,),color,(颜色),Transparency,(透明处理,设置曲面和网格的透明度),lighting,(光照),Info,(,信息,),48,5),文本对象,(text),edit,Current Object properties,打开文本对象参数设置窗口,Text,设置文本字体的名称、尺寸、颜色和文本的内容。,Alignment,(,对齐,),Info,(,信息,),49,6),块对象,(patch),edit,Current Object properties,打开块对象参数设置窗口,Data,(,数据,),style,(,绘图样式,如绘图曲面的颜色,绘图点类型、尺寸、边缘颜色等,),color,(,颜色,),Transparency,(透明处理,设置曲面和网格的透明度),lighting,(光照),Info,(,信息,),50,7),光源对象,(light),edit,Current Object properties,打开光源对象参数设置窗口,light,(,设置光源的位置、颜色和类型,),info,(,信息,),51,8),图像对象,(image),edit,Current Object properties,打开图像对象参数设置窗口,Data,(,选择图像数据、设置图像显示位置,),,,Transparency,(,透明处理,),Info,(,信息,),52,9),矩形对象,(rectangle),edit,Current Object properties,打开矩形对象参数设置窗口,data,(,设置矩形的位置和外形,包括矩形、圆角矩形和椭圆,),Style,(,绘图样式,),Info,(,信息,),53,6.4.3,图形格式控制,图形窗口中的,Insert,菜单(可以设置一些常用的图形格式),X/Y/Z label,title,legend,Arrow,axes,light,54,.,6.4.4,数据拟和工具,在图形窗口中的,Tools,菜单中选择,basic fitting,,打开数据拟和工具,使用该工具可以对所绘制的曲线使用各种方法进行拟和。,55,t=0:pi/5:2*pi;x=sin(t);plot(t,x,*),【,例,6-18】,创建一组数据,使用数据拟合工具,56,设置拟和方法、显示拟和方程、绘制残差图等,显示拟和多项式的系数及残差的范数,计算拟和曲线的函数值,57,58,.,6.4.5,基本统计工具,在图形窗口中的,Tools,菜单中选择,basic statistic,打开基本统计工具,使用该工具可以对所绘制的曲线进行各种基本的,统计运算。,59,6.5,其他图形处理技术,60,6.5.1,图像,真彩色图,索引图,灰度图(强度图),读入,显示,存储,打印,颜色分类,操作,61,颜色分类,62,颜色分类,63,由一个三维图像数据阵组成;,第一、二维表示数据第三维为,RGB,三原色数据。,RGB8:8:8,方式,:R,,,G,,,B,都用,8,位来表示,每个基色分量占一个字节,共,3,个字节,可生成的颜色数就是,224,种。,真彩色图(,true color),许多,24,位彩色图像是用,32,位存储的,附加的,8,位叫做,alpha,通道,它的值叫做,alpha,值,表示该像素如何产生特技效果。,64,在,MATLAB,中直接双击打开,mushroom.jpg,观察数据,或者,:,exp6_20_1,观察,workspace,打开,ACDsee,编辑器,-,颜色,【例6-20-1】图像格式以及图像操作,clc;clear;close all,fture,map=imread(mushroom.jpg);%,真彩色图,fc,mapc=imread(mushroom_c.gif);%256,色彩色图,fgr,mapgr=imread(mushroom_gr.gif);%256,灰度图,fk,mapk=imread(mushroom_k.gif);%,黑白图,65,由两个矩阵组成。,图像矩阵:,存储每个像素点的色彩索引号,色彩矩阵:,m3,,一行为一种颜色的,RGB,分量,对应一个索引号。,索引图,(indexed color),常用的有,256,色、,16,色彩色索引图。,66,也是一种索引图,色彩矩阵的每一行的三个数值相等。(用,PPT,调色板演示),灰度图,(gray-scale),常用的有,256,色、,16,色灰度图。,67,图像读入,操作,图像显示,image(X);colormap(map),%colormap map is valid,in the current figure.,x,map=imread(filename),imshow(filename),imshow(X,map),%colormap map is valid,in the current figure.,subimage(X,map),%colormap map is valid,in the current axes,.,68,图像存储,操作,图像打印,函数,:print,菜单,:Figure-file-print,imwrite(A,filename),imwrite(X,map,filename),imwrite(.,Param1,Val1,Param2,Val2.),Print(h,-mushroom,-djpeg,-r100),Print(h,filename,-options),69,【例6-20-1】图像格式以及图像操作,%,图像显示,%imshow,subplot(2,2,1),imshow(fture),axis off,subplot(2,2,2),imshow(fgr,mapgr),subplot(2,2,4),imshow(fk,mapk),axis off,subplot(2,2,3),imshow(fc,mapc),gtext(error imshow),figure,imshow(fc,mapc);title(imshow)%,用,subimage,函数,指定专用,colormap,%image&subimage,figure,subplot(2,2,1),image(fture),axis off,subplot(2,2,3),subimage(fc,mapc)%,用,subimage,函数,指定专用,colormap,subplot(2,2,2),subimage(fgr),colormap(mapgr)%,设定一个,figure,里公共的,colormap,,作用于没有指定,colormap,的图像,subplot(2,2,4),subimage(fk,mapk),axis off,gtext(image&subimage),%,图像存储,imwrite(fc,mapc,mushroom.bmp),70,【,练习,6-9】,做一个花瓶,如图示。(提示:做一个旋转体表面,调入一幅图像对该表面进行彩绘,即用图像的色图索引作为表面体的色图索引),71,clc;clear;close,t=(0:20)/20;,r=sin(2*pi*t)+2;,x,y,z=cylinder(r,40);%,产生旋转体表面的三维数,cx=imread(picture98.jpg);,c,map=rgb2ind(cx,256);%,真彩色图转换为索引图(若读入的是索引图,不需转换),c1=double(c)+1;,h=surface(x,y,z,flipud(c1),FaceColor,texturemap,Ed,geColor,none,speculars,0.9)%,通过属性设置,进行彩绘。,colormap(map)%,使用图象的色图,view(-50,10);axis off,72,作业,P163 6.2 6.4 6.7,
展开阅读全文