图形处理功能_第1页
图形处理功能_第2页
图形处理功能_第3页
图形处理功能_第4页
图形处理功能_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章图形处理功能Chapter6:ThefunctionofImageprocessing.二维图形(Twodimensionalplotting)基本绘图函数(BasicplottingfunctiPlOt,semilogx,sem订ogy,loglog,polar,plotyy.单矢量绘图(singlevectorplottplot(y,矢量y的元素与y元素下标之间在线性坐标下的关系曲线。例1:单矢量绘图y=00.62.358.311.71517.719.420;plot(y)可以在图形中加标注和网格,例2:给例1的图形加网格和标注。plot(y)title简单绘图举例);xlabel单

2、元下标);ylabel(给定的矢量);gridy=00.62.358.311.71517.719.420;.双矢量绘图(Doublevectorplotting)如x和y是同样长度的矢量,plot(x,命令将纟会制y元素对应于x元素的xy曲线图。例)双矢量绘图。x=0:0.05:4*pi;y=sin(x);plot(x,y).对数坐标绘图(plotinginlogarithmcoordinax轴对数semilogx,y轴对数sem订og,双对数loglog,例:纟会制数组y的线性坐标图和三种对数坐标图。y=00.62.358.311.71517.719.420;subplot(2,2,1)pl

3、ot(y)subplot(2,2,2)semilogx(y)subplot(2,2,3)semilogy(y)subplot(2,2,4)loglog(y)4)极坐标绘图(Plottinginpolarcoordi)nate)polar(theta,rho)thet角度,rho一半径例)建立简单的极坐标图形。t=0:.01:2*pi;polar(t,sin(2*t).*cos(2*t)yU0.5270多重曲线绘图(Multiplecurveplotting)一组变量绘图(Agroupvariableplotting)plot(x,y)(a)x为矢量,y为矩阵时plot(x,用不同的颜色纟会制y

4、矩阵中各行或列对应于x的曲线。例1:x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(3,:)=0.3*sin(x);plot(x,y)(b)x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。例2:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y=sin(x(1,:);plot(x,y)(C)和y是同样大小的矩阵时,plot(x,绘制y矩阵中各列对应于x各列的图形。例3:x(:,1)=0:pi/50:2*pi

5、x(:,2)=pi/4:pi/50:2*pi+pi/4x(:,3)=pi/2:pi/50:2*pi+pi/2;y(:,1)=sin(x(:,1)y(:,2)=0.6*sin(x(:,1);y(:,3)=0.3*sin(x(:,1);0.6plot(x,y)0.40.2-0.4-O.Ei-0.8这里X和y的尺寸都是101X3,所以画出每条都是101点组成的三条曲线。如行列转置后就会画出101条曲线,每条线由三点组成。(d)如果y是矩阵,则plot(y绘出y中各列相对于行号的图形,对于n行矩阵,x轴的坐标为1:n多组变量绘图(Multiplegroupvariablesplotting):对于一系

6、列相应的矩阵yi和xi,可以使用多组变量绘图法:plot(x1,y1,x2,y2,xn,n)这种方法的优点是允许将不同大小的矩阵或矢量的图形绘制在一张图例:多组变量绘图。x=0:pi/50:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,x,y3)双y轴绘图:plotyy,在一个图形窗绘制两组数据曲线,共用一个x轴,图形两边各有一个y轴。两条图线可以调用不同的绘图方法。例1:左侧y轴对应plot形式的绘图,右侧y轴对应stem形式的曲线。例2:对于y坐标不同的情况。t=0:900;A=1000;a=0.005;b=0.005;

7、z1=A*exp(-a*t);z2=sin(b*t);plotyy(t,z1,t,z2,semilogy,plot)图线形式和颜色(Styleandcolorofplot)图线的形式:(styleofMATLAB提供的四种线形,实线虚线,冒号线:,点划线-标记点类型:.,+*,o,x,s或square),d或diamond),p(或pentagram),h(或hexagram),plot(x,y,p)l,ot(x1,y1,:,x2,y2,*)例1:选择不同的线形绘图。t=0:pi/100:2*pi;y=sin(t);y2=sin(t-0.25);y3=sin(t-0.5);plot(t,y,-

8、,t,y2,-,t,y3,:)例2:选择不同的标记点绘图t=0:pi/20:2*pi;x=t3;y=sin(t);plot(x,y,o)线的颜色(colorofplot)MATLAB中可选的颜色:红r,绿g例:t=0:pi/20:2*pi;蓝b,黄y,粉红m,青c(cyan)UNy=sin(t);plot(x,y,r),plot(x,y,g+)(3)图线的其他属性(othercharactersofplot)可设置图线的宽度、标记点的边缘颜色、填充颜色、标记点的大小等。例:设置图线的线形、颜色、宽度、标记点的颜色及大小。t=0:pi/20:pi;y=sin(4*t)*sin(t)/2;plot

9、(t,y,-bs,LineWidth,2,MarkerEdgeColor,k,MarkerFaceColor,y,MarkerSize,10)4.复数绘图(Complexplotting)plo用于函数纟会制复数的图形时,通常虚部是被忽略的。但plot只作用于单个复变量z时,则绘出的是实部对虚部的关系图(复平面上的一组点)。即这时plot(2等价于plot(real(z)例:画一个20边的多边形用exp函数生成),顶角用小圆圈表示。t=0:pi/10:2*pi;plot(exp(i*t),o)axis(square)如果在复平面绘制多重线,只能分别以实部和虚部为坐标来绘制,否则虚部将被忽略,并

10、给出警告。二.图形的控制与表现(Figurecontrolandrepresentation)MATLAB提供的用于图形控制的函数和命令:axis:人工选择坐标轴尺寸.clf:清图形窗口.ginput:利用鼠标的十字准线输入.hold:保持图形.shg:显示图形窗口.subplot将图形窗分成N块子窗口。图形窗window)图形窗的创建和选择(Creatingandselectingoffigurewindow)figure(函数用于为当前的绘图创建图形窗,每运行一次figure就会创建一个新的图形窗口,n表示第个n窗,如果窗定义了句柄,也可以用figure(将句柄h的窗作为当前窗口。clf命

11、令用于清除当前图形窗中的内容。shg命令用于显示当前图形窗D。.在一个图形窗中绘制多个子图形(Drawingseveralsubfiguresinasinglewindow)subplot(m,n,p)把窗分成mxn个小窗,并把第p个窗当作当前窗例:将4个图形显示在同一个图形窗中。t=0:pi/20:2*pi;x,y=meshgrid(t);subplot(2,2,1)plot(sin(t),cos(t),axisequalsubplot(2,2,2)z=sin(x)+cos(y);plot(t,z),axis(02*p-2)subplot(2,2,3)z=sin(x).*cos(y);plo

12、t(t,z),axis(02*p-1)subplot(2,2,4)z=sin(x)八2-cos(y)八2;plot(t,z),axis(O2*p-1)在一个已有的图形上绘图(Drawingafigureonthefigurewasexisted)用holdon命令在一个已有的图形上继续绘图,使用holdoff命令结束继续绘图。例:将peaks函数的等高线图与伪彩色画在一起。%产生双变量数组%绘制等高线%绘制伪彩色图%表面色彩渲染x,y,z=peaks;contour(x,y,z,20,k)holdonpcolor(x,y,z)shadinginterpholdoff坐标轴控制命令(Axisco

13、ntrolcommands)控制坐标性质的axis函数的多种调用格式:axis(xminxmaxyminymax):指定二维图形x和y轴的刻度范围,axisauto设置坐标轴为自动刻度(缺省值)axismanual(或axis(axis)保持刻度不随数据的大小而变化axistlght以数据的大小为坐标轴的范围axisij设置坐标轴的原点在左上角,i为纵坐标,j为横坐标axisxy使坐标轴回到直角坐标系axisequal使坐标轴刻度增量相同axissquare使各坐标轴长度相同,但刻度增量未必相同axisnormal自动调节轴与数据的外表比例,使其他设置失效axisoff使坐标轴消隐axison

14、显现坐标轴(1)坐标轴的范围(Domainofcoordinatesaxis)二维图形坐标轴范围在缺省状态下是根据数据的大小自动设置的,如欲改变,可利用axis(xminxmaxyminymax)函数来定义。例:定义坐标轴范围对观察图形的影响。x=0:01:pi/2;figure(1)plot(x,tan(x),-ro)%y=tan(1.57而其他数据都很小,结果将max%使图形难于进行观察和判断。figure(2)plot(x,tan(x),-ro)axis(0,pi/2,0,5)%对坐标轴的范围进行控制就可得到较满意的绘图结果(2显示比例对绘图结果的影响(Effectofdisplaysc

15、alingonplottingresults例:比较(Default,axissquare,axisequal,axlis种不同的显示方式的显示效果。t=0:pi/20:2*pi;figure(1)subplot(2,1,1)plot(sin(t),2*cos(t)gridonsubplot(2,1,2)plot(sin(t),2*cos(t)axissquaregridonfigure(2)subplot(1,2,1)plot(sin(t),2*cos(t)axisequalgridonsubplot(1,2,2)plot(sin(t),2*cos(t)axistightgridon%缺省状

16、态下的图形比例%正方形的显示比例%具有相等的刻度比例%紧缩形式图形标注(Markingonthefigure:MATLAB的图形标注方法(表67)title标题,xlabelx轴标注,ylabely轴标注,text任意定位的标注gtext鼠标定位标注,legent标注图例图形标注可以使用字母,数字,汉字或按规定的方法表示希腊字母,如pi表示n,leq表示,rm表示后面的字恢复为正体字,i表示斜体字,FontSize表示字体的大小,FontName表示字体的类型等。可以使用图形窗的Insert菜单,也可以使用属性编辑器,还可以使用函数输入的方法加标注,以下介绍相关函数的使用方法。.加注坐标轴标识

17、和图形标题(Addaxislabelsandtitleoffigure)加注坐标轴标识:xlabel(s),ylabel(s)图形标题:title(s)例:加注坐标轴标示和图形标题。t=0:pi/100:2*pi;y=sin(t);plot(t,y)axis(02*pi,-11)xlabel(0leqittrmleqpi,FontSize,16)ylabel(sin(t),FontSize,20)titief弦函数图形,FontName隶书,FontSize,20).图中加注文本(Addtextinthefigure)text(x,y字符串例:在上图中加语句。t=0:pi/100:2*pi;y

18、=sin(t);plot(t,y)axis(02*pi,-11)xlabel(0leqittrmleqpi,FontSize,16)ylabel(sin(t),FontSize,20)title正弦函数图形,FontName隶书,FontSize,20)text(3*pi/4,sin(3*pi/4),leftarrowsin(t)=0.707,FontSize,16)text(pi,sin(pi),leftarrowsin(t)=0,FontSize,16)text(5*pi/4,sin(5*pi/4),sin(t)=-0.707rightarrow,FontSize,16,.Horizont

19、alAlignment,right)句中:leftarrow表示加一个向左的箭头rightarrow表示加一个向右的箭头HorizontalAlignment表示右对齐水平排列gtext函数用于在图形窗上用鼠标直接在指定的位置上加注文本,调用格式:gtext字符符串)例:t=0:pi/100:2*pi;y=sin(t);plot(t,y)axis(02*pi,-11)xlabel(0leqittrmleqpi,FontSize,16)ylabel(sin(t),FontSize,20)title正弦函数图形,FontName隶书,FontSize,20)gtext(MATLAB).指定TeX字

20、符例:在标题中指定TeX字符t=0:pi/100:2*pi;alpha=-0.8;beta=15;y=sin(beta*t).*exp(alpha*t);plot(t,y)title(itAe厂-italphaittsinitbetaittitalphaitbeta)xlabel时间mus),ylabel幅值)在tit1中的字符串表现的是AeatsinjSta0itAe厂-italphaittsinitbetaitt:tta1phait斜体Ae上标斜体at斜体斜体a斜体04在图形中添加图例框(Addlegendinthefigure)legend(字符串1,字符串2,)例:在当前图形中添加图例

21、说明。x=0:pi/10:2*pi;y1=sin(x);y2=06*sin(x);y3=03*sin(x);plot(x,y1,x,y2,-o,x,y3,-*)legend(曲线1,曲线2,曲线3)legend(boxoff)legend函数的其他功能见(表68)三.特殊图形(Specialfigure)1.条形图(Barfigure)bar(y),bar(x,y),barh,bar3(y),bar3(x,y),bar3h(x,y)二维条形图:bar(y),bar(x,y),barh,(a).如果y是矢量,bar(y)绘制最简单的条形图,每一个条形图的位置由y兀素的下标决定,高度由y兀素的大小

22、决定。例1:a=135;437;284bar(a)当y是mxn阶的矩阵时bar(y)绘制的条形图以分组或叠加的形式表现。矩阵中每一行兀素绘制在一组中,每一列兀素绘制在每组中相对应的位置上(各组中同样颜色的条形表示同一列数据)。例2:y=986;258;629;587;942;bar(y)例3:绘制分组形式的水平条形图。y=986;258;629;587;942;barh(y)例4:绘制叠加形式的条形图。y=986;258;629;587;942;bar(y,stack)例5:绘制叠加形式的水平条形图。y=986;258;629;587;942;barh(y,stack)使用bar(x,y绘制指

23、定x坐标的条形图,其中x必须是矢量,用于确定各组条形图的位置。例1:指定x坐标的二维条形图,x=124710y=986;258;629;587;942;bar(x,y)例2:指定x坐标的水平二维条形图,x=124710y=986;258;629;587;942;barh(x,y)例3:绘制指定x坐标的叠加形式的二维条形图。x=124710y=986;258;629;587;942;bar(x,y,stack)如果y也是矢量,对应每一个x坐标有一个条形,条形的高度表示了矢量y元素的大小。例4:x=0:pi/10:2*pi;y=sin(x);bar(x,y)三维条形图:bar3(y)将mxn阶的矩

24、阵绘制成分布在三维空间中的柱体,有分组形式和分列形式两种。例1:分组形式的三维条形图。y=986;258;629;587;942;bar3(y,group)例2:分列形式的三维条形图。y=986;258;629;587;942;bar3(y)条形图中的图形叠加:通过在相同的位置创建一个与原来条形图中的坐标轴相对独立的新的坐标轴实现条形图的叠加。例:有两组实验数据,一组表示物质成分(TCE),组表示温度(temp),数据是在35天中每隔5天的采样,将物质成分和温度与时间的关系画在一张图中。TCE=5154203702501351206020;%实验数据temp=2923272520232327;

25、days=0:5:35;%采样天数bar(days,temp,c)%温度与时间的条形图xlabel(Day)ylabel(TemperatureoC)h1=gca;%获取当前轴对象句柄h2=axes(position,get(h1,position);%建立新的与hl位置相同的对象句柄plot(days,TCE,LineWidth,3)%在以为句柄的坐标对象上绘制物质成分与时间的关系曲线set(h2,YaxisLocation,right,color,none,Xticklabel,)%设置句柄为h2的坐标轴对象的y轴为右侧。set(h2,Xlim,get(h1,Xlim),Layer,top

26、)%设置句柄为h2的坐标轴对象的x轴的范围与句柄为hl的%坐标轴对象轴的范围相同。text(11,380,Concentration,Rotation,-55,FontSize,16)%在坐标为11380的位置以旋转-55%的方向书写concentrationylabel(TCEConcentration(PPM)title(Bioremediation,FontSize,16)饼图(pie)用于表示矢量或矩阵中各元素所占有的比例。函数pie和pie3提供平面饼图和三维饼图的绘图功能。*pie(x)使用x中的数据绘制饼图,x中的每一个元素用饼图中的一个扇区表示。*pie(x,explode将一

27、些扇区从饼图中分离出来,explode为一个与x尺寸相同的矩阵,其非零元素所对应的x矩阵中的元素从饼图中分离出来。不分离饼图:pie(x)例1:不分离饼图:x=5574.744.533.246.6;pie(x)带分离切块的饼图:在矢量x的后面加一个与x相同长度的矢量,该矢量中所有不为0的元素所对应的矢量x中的切块将被分离出来。例2:x=5.574.744.533.246.6;pie(x,00001)%分离第5块不完整的饼图:当x的全部元素之和小于1时绘制的是不完整饼图。例3:x=0.20.30.4;pie(x)三维饼图:有一定厚度的饼图,由函数pie3实现,调用方法与二维饼图相同。例:带分离切

28、块的三维饼图。pie3(12345,01010)3.其他图形(Otherfigures)MATLAB有20多种特殊图形的绘制方法,下述为常用方法。(1)直方图(hist:种统计运算的结果,它的横轴是数据的幅度,纵轴是对应于各个幅度数据出现的次数,直方图没有负数。例1:直角坐标系下矢量的直方图。yn=randn(10000,1);figure(1)hist(yn)%缺省状态下画10个条形figure(2)hist(yn,20)%可以设置n个条形个数例2:直角坐标系下的三维数组的直方图。y=randn(10000,3);figure(1)hist(y)%缺省状态下画10个条形figure(2)hi

29、st(y,20)%hist(y,n可以设置条形个数为n用杆状图表现离散数据例1:二维杆状图。x=0:0.2:10;y=exp(-0.3*x).*sin(x);figure(1)stem(x,y)figure(2)stem(x,y,:sr)%可用字符串改变线形、标记点形状和颜色例2:用三维杆状图表现复平面快速傅立叶变换计算。th=(0:127)/128*2*pi;x=cos(th);y=sin(th);f=abs(fft(ones(10,1),128);stem3(x,y,f,d,fill)xlabel实部)ylabel虚部)zlabel幅值)titie频率响应幅值)例2:用三维杆状图与其他图形

30、的叠加表现拉普拉斯变换基函数。t=0:0.1:10;s=0.1+i;y=exp(-s*t);%计算延迟指数stem3(real(y),imag(y),t,m)holdonhline=(plot3(real(y),imag(y),t,k)%返回三维曲线图的句柄holdoffset(hline,LineWidth,3)%设置线宽xlabel实部)ylabel虚部)zlabel幅值)阶梯图阶梯图的表现方法:调用函数stairs(x,每一阶梯的起始点为矢量y的数据点。(STAIRS(X,Y)drawsastairstepgraphoftheelementsinvectorYatthelocations

31、specifiediTnheX.X-valuesmustbeinascendingorderandevenlyspaced.)例:绘制函数fe七sin(t)阶梯图。alpha=0.01;beta=0.5;t=0:10;f=exp(-alpha*t).*sin(beta*t);stairs(t,f)holdonplot(t,f,:*)%绘制虚线图以说明阶梯图阶梯起始点的位置holdofflabel=函数e八-(alpha*t)sinbe的阶梯图;text(0.5,-0.2,label,FontSize,14)xlabel(t=0:10,FontSize,14)axis(O10-1212彩色分散点

32、图(Colorscatterfigure)彩色分散点图函数:scatter(x,y,c,s)x,y为两个矢量,用于定位数据点,S为绘图点的大小,c为绘图所使用的色彩,s和c均可以以矢量或表达式形式给出,s和c为与X或y同长度的矢量时标记点尺寸和颜色将按线性规律变化。在scattert函数的前4各参数之后还可以增加第五个参数f订le,表示填充绘图点。Scatter与plot的最大差别在于Scatter可以绘制变尺寸、变颜色的点图。例:给定数据t=0:pi/10:2*pi,y=sip(t3察在不同输入参数时函数的绘图结果。t=0:pi/10:2*pi;y=sin(t)subplot(3,2,1)s

33、catter(t,y)subplot(3,2,2)scatter(t,y,v)subplot(3,2,3)scatter(t,y,(abs(y)+2)八4,filled)subplot(3,2,4)scatter(t,y,30,0:2:40,v,filled)subplot(3,2,5)scatter(t,y,(t+1)3,y,filled)四.三维图形(3-Dfigure)MATLAB提供了大量三维图形的表现函数,可用于绘制三维曲线图、网格图、表面图、伪彩图和等高线图等,还提供了控制颜色、光线、视角等绘图效果的函数和命令。三维曲线图(3-Dplotting)plot3(x,y,z)当x,y,

34、是同样长度的矢量时,绘出的是一条在三维空间贯穿的曲线。例1:当x,y,都是一维数组时的三维曲线图。t=0:pi/50:10*pi;x=exp(-t/15).*sin(2*t);y=exp(-t/15).*cos(2*t)z=t;plot3(x,y,z)axissquare;gridon如x,y,都是mxn阶的矩阵时,绘出的是m条分布在三维空间的曲线。例2:当x,y,都是矩阵时的三维曲线图。x,y=meshgrid(-2:0.1:2);z=x*exp(-x八2一y.八2);plot3(x,y,z)gridon例3:规定线形、颜色及标记点的三维曲线图。t=0:pi/20:5*pi;plot3(si

35、n(t),cos(t),t,:*r)三维绘图数据的产生(Creatingthedataof3-Dfigure)peaks用于创建双峰函数和绘图。基本调用格式为:*x,y,z二peaks(n)分别创建x,y,三个均为nW阶的方阵,其中x的每列元素都相同,每一行元素均为在-33区间内的n等份,y的行列元素与x刚好相反,z为x和y的函数,z=31x)2ex2(y1)210(xx3y5)ey丄e(xi)2y53Peaks(n)直接用peaks函数创建的x,y,2三个矩阵绘制表面图,相当于执行了x,y,z二peaks(和surf(x,y,两个函数。例1:a=peaks(8);mesh(a)(2)mesh

36、grid按指定方式生成网格矩阵,调用格式为:X,Y,Z=meshgrid(x,y,z分别创建X,Y,Z三个mxn*阶的矩阵,矩阵的阶数由x,y,三个矢量的长度m,n,k确定,X,Y,Z三个矩阵表示了三维空间的网格,如省略了Z,则创建二维网格。x,y,z=meshgrid(2,3,6);plot3(x,y,z)gridon网格图(Meshing)*mesh(z)绘制分别以mxn阶矩阵z的行数和列数为x和y坐标(1:m1:n,以z的对应元素值为z坐标的三维网格图。*mesh(x,y,z)绘制分别以矩阵x,yz的元素值为坐标的三维网格图,x,y,z必须为同阶矩阵。*函数Meshc:将网格图与等高线一

37、起绘制。*函数Meshz:在绘制的同时绘制零基准平面。例1:绘制各种网格图subplot(2,2,1)mesh(peaks(20)%基本网格图subplot(2,2,2)meshc(peaks(20)%带等高线的网格图subplot(2,2,3)p=peaks(30);p(20:23,9:15)=NaN*ones(4,7);%剪孔位置(将部分网格设置为非数)meshz(p)%带剪孔的垂帘网格图(带有零基准平面)subplot(2,2,4)Waterfall(peaks(30)%瀑布水线图4着色表面图(Surfing)绘制表面着色图surf,绘制表面着色图的基本命令;surf,绘制带等高线的着色

38、表面图;surfl可以控制表面图的光照效应。函数surf的调用格式:surf(z)绘制分别以mxn阶矩阵z的行数和列数为x和y坐标(1:m,1:n以z的对应元素值为z坐标的三维表面图。surf(x,y,z绘制分别以矩阵x,yz的元素值为坐标的三维表面图,x,y,z必须为同阶矩阵。(1:m,1:n以z的对应元素值为zsurf(x,y,z,c用C定义的颜色绘制三维表面图。surf(,PropertyName,PropertyVal定义三维表面属性图。surfc()绘制带等高线的三维表面图。h=surf(和h=surfc()返回表面图的图形对象句柄。例1:用surf函数画一个椭圆表面。(a生成数据并

39、绘制表面图x=-1.5:0.3:1.5;y=-1:0.2:1;x,y=meshgrid(x,y);%将矢量x,y转为数组X,Y,用于绘三维表面图z=sqrt(4-x.八2/9-y八2/4);surf(x,y,z)MESHGRIDXandYarraysfor3-Dplots.X,Y=MESHGRID(x,y)transformsthedomainspecifiedbyvectorsxandyintoarraysXandYthatcanbeusedfortheevaluationoffunctionsoftwovariablesand3-Dsurfaceplots.Therowsoftheoutp

40、utarrayXarecopiesofthevectorxandthecolumnsoftheoutputarrayYarecopiesofthevectory.用surf函数绘制带光照效果的表面图surfl(x,y,z)colormap(hot)调用表面色彩渲染函数shading,控制表面颜色连续变化。surfl(x,y,z)colormap(hot)shadinginterpshading函数有三个可选择参数flat,faceted,interp例:不同shading函数参数设置的效果对照figure(1)surf(peaks(20)shadingflatfigure(2)surf(pea

41、ks(20)shadingfaceted%网格的每个线段和表面都有相同的颜色%在flal的基础上加黑色网格figure(3)surf(peaks(20)shadinginterp%网格的每个线段和表面上的颜色都是变化的例:产生一个旋转柱面体。t=0:pi/12:3*pi;r=abs(exp(-0.25*t).*sin(t);x,y,z=cylinder(r,30);surfl(x,y,z)colormap(prism)shadinginterp%按照预定的色彩索引映射色图表面图形的透明处理hiddenoff是个开关型命令,可以看到被遮挡的网格线条,时图形透明例:有无透明处理的效果对比。x,y=

42、meshgrid(-8:.5:8);R=sqrt(x.八2+y八2)+eps;Z=sin(R)./R;figure(1)%hiddenon(缺省,无透明处理)mesh(Z)colormap(0,1,0)x,y=meshgrid(-8:.5:8);R=sqrt(x.八2+y八2)+eps;Z=sin(R)./R;figure(2)%hiddenoff(做透明处理)mesh(Z)colormap(0,0.2,0.5)hiddenoff表面图形的颜色映射colormap:colormap函数用于按照预定的色彩索引映射色图:colormap(RGB颜色矢量函数或colormap(MAP),(RGB颜色

43、表(表610),用于网格图mesh;色彩映射表:(表611)用于表面图surf(RGB颜色表610)(色彩映射表表611)切片图(Slicefigure)slice(X,Y,Z,v,xi,yi,四维可视化函数,X,Y,Z为使用meshgrid函数生成的三维网格坐标矩阵,xi,yi,z为切片位置。slice用于实现三元函数(v=f(x,y,图形函数)的可视化表现,绘制三维物体切片图。例:函数的四维表现。x=-2:0.1:2;y=-2:0.25:2;z=-2:0.25:2;X,Y,Z=meshgrid(x,y,z);%形成X,Y,Z三维网格坐标矩阵v=X*exp(-X2-Y2-Z八2);%所绘制的

44、图形的函数xi=-0.7,0.7;%切片位置yi=-0.4,1.9;zi=-0.5;slice(X,Y,Z,v,xi,yi,zi)%形成三维切片图xlabel(x);ylabel(y);zlabel(z);colorbar(horiz%)创建水平色条,也可用colorbarvert沧I建垂直色条view(-30,45)五.图形处理的高级技术(Advancedtechnologyofimageprocessing)视图(View)控制视图和旋转的函数:view,viewmtx,rotate,rotate3d(1视图方向:view(az,el)az(azimuth)-方位角,绕z轴旋转,逆时针为正

45、,el(elevatio)仰角,从xy平面向z轴旋转的角度,朝向z轴的旋转为正。缺省状态二维图形:az=0o,el=90,三维图形:az=-37.5o,el=30oview(vx,vy,vz)返回视点的直角坐标例:比较不同视图的视觉效果。subplot(2,2,1)peaks(50)subplot(2,2,2)peaks(50)view(90,0)subplot(2,2,3)peaks(50)view(30,45)subplot(2,2,4)peaks(50)view(2)%二维平面图图形旋转:rotate3d三维视图变化命令,可以用鼠标控制视图的变化。例:peaks(50)rotate3d光

46、照(1)创建光源*light(color,option1,style,option2,position,option3)不使用此函数时,图形采用各处相等的漫射光,采用后产生确定属性的光源,缺省设置为无穷远处的白色光源穿过1,0,1射向坐标原点。(2)光照模式lightoptions:fla:t入射光均匀照射在图形对象的每个小面上,为缺省选项。gouraud:先对顶点颜色插值,再对由顶点勾画的面插值,选项用于曲面的表现。phong:对顶点处法线插值,再计算各像素点的反光,效果好,但占机时多。(3)材料反射系数materialmaterialoptions:shiny:有光泽、明亮,镜反射份额较大

47、dull:暗淡、柔和,漫反射份额大,无镜面亮点。metal:有金属光泽,镜反射份额大,背景光和反射份额小。Default缺省方式。(4)对五大反射要素进行特别设置material(ka,kd,ks,n,sc)ka:环境光(背景光)强度(数值越大,光越强)。Kd:漫反射强度(数值越大,光越强)。Ks:镜射光强度(数值越大,光越强)。N;镜面指数(控制镜面亮点大小,指数越大亮点越小)。Sc:镜面颜色的反射系数。例:光照和材料反射系数的示例。clf%清理当前图形窗口t=linspace(0,2*pi,100);%建立线性空间矢量r=1-exp(-t/2).*cos(4*t);%旋转母线x,y,z=c

48、ylinder(r,60);%产生旋转柱数据ii=find(x0&y0);z(ii)=NaN;%确定x-y平面第四象限上的数据下标%剪切surf(x,y,z)colormap(pink)shadinginterp%表面色彩渲染light(position,-3,T,3,style,%d设置光源material(0.5,0.4,0.3,10,0.3)%设置表面发射LINSPACELinearlyspacedvector.LINSPACE(x1,x2)generatesarowvectorof100linearlyequallyspacedpointsbetweenx1andx2.LINSPACE

49、(x1,x2,N)generatesNpointsbetweenx1andx2.例2:显示效果增强后的二元函数表面图及光照。x,y=meshgrid(-8:.1:8);r=sqrt(x.八2+y.八2)+eps;z=2*sin(r)./r;surf(x,y,z)shadinginterp;daspect(551)%设置坐标轴数据的纵横比axistightview(-50,30)light(position,-10,-10,21)(DASPECTDataaspectratio.DAR=DASPECTgetsthedataaspectratioofthecurrentaxesDASPECT(XYZ

50、)setsthedataaspectratio.DARMODE=DASPECT(mode)getsthedataaspectratiomode.DASPECT(mode)setsthedataaspectratiomode.(modecanbeautoormanual)DASPECT(AX,.)usesaxesAXinsteadofcurrentaxes.DASPECTsetsorgetstheDataAspectRatioorDataAspectRatioModepropertyofanaxe)s.例3:绘制双光照效果的球。sphere(36);%创建球面的函数sphere(n)球面小刻面数

51、为(n+1xn+1)axisequallight(position,132);light(position,-3-13);materialshinyaxisoff%消隐坐标轴图象(Image)三大类图象:(Threekindofimages)*索引图:由一个图象矩阵(X)和一个色图矩阵(MAP)组成,调用格式:x,map=imread(filename;)*灰度图:由一个图象矩阵(X)和一个色图矩阵(MAP)组成,其色图为单色的灰度色图。调用格式:x=imread(filename)*真彩色图:由一个三维图象数据组组成,第三维为RGB三原色数据,没有色图矩阵。调用格式:x=imread(fil

52、ename)例:图象操作x,map=imread(lilytif);%读取图象文件image(x);%显示图象colormap(map)%色彩映射axisimageoff%消隐坐标轴图形的输出(0utputfigures)图形打印(rintingfihures)(a)从图形窗的F订e菜单中选择Print选项,弹出Windows打印对话框;打印命令:print-device-options例:x=0:pi/100:2*pi;plot(x,sin(x)print将图形打印在默认打印机上图象存储(Savingfigures)(a利用print命令将图形输出到文件,格式为print-一devicopt

53、ionsfilename如print(h,-djpeg,a(100)%建立100pi的图形文件a01.jpg(b)生成图象文件:图形窗中显示的任何图形都可以通过getfram命令得到相应的位图数据,然后用imwrite命令存储为其他格式的图象文件。如:x=imread(flowers.tif);image(x)f=getframe;%f是一个结构函数imwrite(f.cdata,flowers.jpg)或用:x,map二frame2in(f)53以前版本用capture命令捕捉当前图形。六.图形对象与句柄(Figureobjectandhandle)1.图形对象概述(Introductionoffigureobject)图形对象(Figureobjec:可以确定图形的整体或部分属性的各层界面。各层次图形对象是相互关联的,低层次的对象必须建立在它所在层次之上各层对象完备的基础上。2图形对象的类型(Typeoffigureobject)根屏幕(rootscreen)在层次的最顶层是根对象,相当于计算机屏幕,根对象只有一个,根对象不能被建立,但可以设置根属性以控制图形的显示图形窗(figurewindow)独立于根屏幕的显示图形窗口,是根对象的子对象,而所有其他图形对象都是图形窗的子孙。所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论