matlab计算的可视化第三次.ppt

上传人:壹****1 文档编号:570060974 上传时间:2024-08-01 格式:PPT 页数:61 大小:2.09MB
返回 下载 相关 举报
matlab计算的可视化第三次.ppt_第1页
第1页 / 共61页
matlab计算的可视化第三次.ppt_第2页
第2页 / 共61页
matlab计算的可视化第三次.ppt_第3页
第3页 / 共61页
matlab计算的可视化第三次.ppt_第4页
第4页 / 共61页
matlab计算的可视化第三次.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《matlab计算的可视化第三次.ppt》由会员分享,可在线阅读,更多相关《matlab计算的可视化第三次.ppt(61页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 MATLAB计算的可视化(三)计算的可视化(三) 图形修饰处理图形修饰处理 隐函数绘图隐函数绘图 图像处理与动画制作图像处理与动画制作4.4 4.4 图形修饰处理图形修饰处理4.4.1 4.4.1 视点处理视点处理 从不同的视点绘制的图形其形状是不一样的。视点位从不同的视点绘制的图形其形状是不一样的。视点位置可由方位角和仰角表示。方位角又称旋转角,它是视点置可由方位角和仰角表示。方位角又称旋转角,它是视点与原点连线在与原点连线在xyxy平面上的投影与平面上的投影与y y轴负方向形成的角度,轴负方向形成的角度,正值表示逆时针,负值表示顺时针。仰角又称视角,它是正值表示逆时针,负值表

2、示顺时针。仰角又称视角,它是视点与原点连线与视点与原点连线与xyxy平面的夹角,正值表示视点在平面的夹角,正值表示视点在xyxy平面平面上方,负值表示视点在上方,负值表示视点在xyxy平面下方。平面下方。4.4 4.4 图形修饰处理图形修饰处理 MATLABMATLAB提供了设置视点的函数提供了设置视点的函数viewview,其调用格式为,其调用格式为view(az,el)view(az,el):azaz为方位角,是为方位角,是视点与原点连线在视点与原点连线在xyxy平面上的投平面上的投影与影与y y轴负方向的夹角,逆时针旋转为正方向。轴负方向的夹角,逆时针旋转为正方向。elel为仰角。为仰角

3、。它们的单位均为度。它们的单位均为度。view(2)view(2):给出了二维图形中视角的默认值(:给出了二维图形中视角的默认值(0 0,9090););view(3)view(3):给出了三维视图中视角的默认值(:给出了三维视图中视角的默认值(-37.5-37.5,3030)az,el=view:az,el=view:返回当前图形的视角。返回当前图形的视角。4.4 4.4 图形修饰处理图形修饰处理【例例4.454.45】从不同视点观察三维曲线。从不同视点观察三维曲线。程序如下:程序如下: x,y=meshgrid(0:0.1:pi/2,0:0.1:pi);z=sin(x.2)+cos(y.2

4、); subplot(1,3,1) plot3(x,y,z); grid,xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis); subplot(1,3,2) plot3(x,y,z) grid,xlabel(X-axis),ylabel(Y-axis) title(Az=90,El=0)view(90,0)subplot(1,3,3) plot3(x,y,z) grid,xlabel(X-axis),ylabel(Y-axis) title(Az=0,El=90) view(0,90)或或view(2)4.4 4.4 图形修饰处理图形修饰处理 函数函数vi

5、ewmtxviewmtx给出指定视角的正交转换矩阵给出指定视角的正交转换矩阵【例例4.464.46】A=viewmtx(0,90)A = 1.0000 0 0 0 0 1.0000 0.0000 0 0 -0.0000 1.0000 0 0 0 0 1.00004.4 4.4 图形修饰处理图形修饰处理 函数函数rotate3drotate3d是较为常用的三维视角变化函数,该函数的是较为常用的三维视角变化函数,该函数的使用将触发图形窗口的使用将触发图形窗口的rotate3drotate3d选项,这时,用户可以方选项,这时,用户可以方便地用鼠标来控制视角的变化,而且,视角的变化值也将便地用鼠标来控

6、制视角的变化,而且,视角的变化值也将实时地显示在图中。实时地显示在图中。【例例4.474.47】三维视角变化函数设置视角为(三维视角变化函数设置视角为(-33-33,4242)。)。 x,y,z=peaks;x,y,z=peaks; colormap(hsv(100) colormap(hsv(100) mesh(x,y,z) mesh(x,y,z) rotate3d rotate3d4.4 4.4 图形修饰处理图形修饰处理4.4.2 4.4.2 色彩处理色彩处理1 1颜色的向量表示颜色的向量表示 MATLABMATLAB除用字符表示颜色外,还可以用含有除用字符表示颜色外,还可以用含有3 3个

7、元素的个元素的向量表示颜色。向量元素的范围取值为向量表示颜色。向量元素的范围取值为00,11,3 3个元素分个元素分别表示红、绿、蓝别表示红、绿、蓝3 3种颜色的相对亮度,称为种颜色的相对亮度,称为RGBRGB向量,如向量,如灰色表示为灰色表示为0.5 0.5 0.50.5 0.5 0.5。下页表所示为几种常见颜色。下页表所示为几种常见颜色的的RGBRGB值。值。4.4 4.4 图形修饰处理图形修饰处理 4.4 4.4 图形修饰处理图形修饰处理 2 2色图色图 色图(色图(Color mapColor map)是)是MATLABMATLAB中的颜色参照表。色图中的颜色参照表。色图以以m m3

8、3的数值矩阵表示,用于定义的数值矩阵表示,用于定义m m种颜色,它的每一行种颜色,它的每一行对应某个颜色的对应某个颜色的RGBRGB向量。色图保存着颜色从浓到淡或从向量。色图保存着颜色从浓到淡或从一种颜色过渡到另一种颜色的所有中间颜色的值。除一种颜色过渡到另一种颜色的所有中间颜色的值。除plotplot及其派生函数外,及其派生函数外,meshmesh、surfsurf等函数均使用色图着色。等函数均使用色图着色。 MATLABMATLAB中使用函数中使用函数colormapcolormap设置和获取图像显示用的颜色设置和获取图像显示用的颜色参照表,函数的调用格式为参照表,函数的调用格式为 col

9、ormap(m)colormap(m) 其中其中m m为一三列矩阵,行数不限,该矩阵可以是下页表为一三列矩阵,行数不限,该矩阵可以是下页表所示的颜色映像,也可以为用户自定义的颜色映像矩阵。所示的颜色映像,也可以为用户自定义的颜色映像矩阵。 4.4 4.4 图形修饰处理图形修饰处理颜色映像颜色映像相应的颜色系相应的颜色系颜色映像颜色映像相应的颜色系相应的颜色系autumn红黄色系红黄色系hsv色调饱和色系(以红色开始并束)色调饱和色系(以红色开始并束)bone带一点蓝色的灰度带一点蓝色的灰度 jet色调饱和色系(以蓝色开始并束)色调饱和色系(以蓝色开始并束)colorcube增强的颜色系增强的颜

10、色系lines线性色系线性色系cool青和洋红的色系青和洋红的色系pink柔和色系柔和色系copper线型铜色系线型铜色系prism棱镜色系棱镜色系flag交替的红白蓝黑色系交替的红白蓝黑色系spring洋红黄色系洋红黄色系gray线性灰色系线性灰色系summer绿、黄色系绿、黄色系hot黑红黄白色系黑红黄白色系winter蓝、绿色系蓝、绿色系vgaWindows16为色系为色系4.4 4.4 图形修饰处理图形修饰处理例如:例如: colormap(pink(8);%colormap(pink(8);%定义当前窗口的颜色映像为柔和色定义当前窗口的颜色映像为柔和色系,其颜色定义有系,其颜色定义有

11、8 8种。可以通过查看颜色映像矩阵而种。可以通过查看颜色映像矩阵而得到具体的颜色值。得到具体的颜色值。例如:例如:pink(8)pink(8)ans = 0.3333 0 0 0.5634 0.3086 0.3086 0.7237 0.4364 0.4364 0.7868 0.6299 0.5345 0.8452 0.7766 0.6172 0.8997 0.8997 0.6901 0.9512 0.9512 0.8591 1.0000 1.0000 1.00004.4 4.4 图形修饰处理图形修饰处理 完成对颜色映像的定义后,可以调用所定义的颜色映像完成对颜色映像的定义后,可以调用所定义的颜

12、色映像为图形服务,有为图形服务,有pcolor,rgbplotpcolor,rgbplot及及colorbarcolorbar等函数。等函数。 函数函数pcolorpcolor为伪色函数,伪色并不是真正的颜色,而为伪色函数,伪色并不是真正的颜色,而是通过颜色的不同来反映相应数据数值的大小。调用格式:是通过颜色的不同来反映相应数据数值的大小。调用格式: pcolor(c)pcolor(c):其作用相当于以当前颜色映像为矩阵:其作用相当于以当前颜色映像为矩阵c c进进行行“着色着色”,即根据矩阵元素的大小在当前颜色映像中进,即根据矩阵元素的大小在当前颜色映像中进行插值着色。行插值着色。 4.4 4

13、.4 图形修饰处理图形修饰处理 函数函数pcolorpcolor的使用一般与函数的使用一般与函数shadingshading相结合,相结合,shadingshading的作用在于以不同方式为图形着色,其调用格式如下:的作用在于以不同方式为图形着色,其调用格式如下: shading shading 控制字符串控制字符串 其中控制字符串主要有三种形式,分别是其中控制字符串主要有三种形式,分别是faceted,interpfaceted,interp和和flatflat。其中。其中facetedfaceted为其默认形式,以平面作为着色单位;为其默认形式,以平面作为着色单位;interpinterp

14、以插值形式为图形的像点着色;以插值形式为图形的像点着色;flatflat以平滑形式定以平滑形式定义着色方式。对于义着色方式。对于pcolorpcolor函数,其着色方式默认为函数,其着色方式默认为facetedfaceted方式,可以通过调用方式,可以通过调用shadingshading加以修改。加以修改。4.4 4.4 图形修饰处理图形修饰处理【例例4.484.48】绘制矩阵绘制矩阵rosserrosser的伪色图。的伪色图。 colormap(hot(80); pcolor(rosser); shading interp; shading flat;4.4 4.4 图形修饰处理图形修饰处理

15、 函数函数rgbplotrgbplot是一种直接显示颜色映像的函数,其调是一种直接显示颜色映像的函数,其调用格式为;用格式为; rgbplot(colormap):rgbplot(colormap):该函数的输入变量本身是一个颜色该函数的输入变量本身是一个颜色映像,或颜色映像相似的数值矩阵,其作用是将矩阵的映像,或颜色映像相似的数值矩阵,其作用是将矩阵的三列值分别以红、绿、蓝绘出。三列值分别以红、绿、蓝绘出。【例如例如】 rgbplot(hot(80) rgbplot(hot(80) 此命令绘出颜色映像此命令绘出颜色映像hot(80)hot(80)的的RGBRGB三色图,如右图。三色图,如右图

16、。4.4 4.4 图形修饰处理图形修饰处理 函数函数colorbarcolorbar将在当前的图形窗口中显示颜色标尺,将在当前的图形窗口中显示颜色标尺,用来反映当前使用的颜色映像,并且以此反映图形中数据用来反映当前使用的颜色映像,并且以此反映图形中数据的相对大小。其调用格式如下:的相对大小。其调用格式如下: colorbar(colorbar(vertvert) %) %垂直显示颜色标尺垂直显示颜色标尺 colorbar(colorbar(horizhoriz)%)%水平显示颜色标尺水平显示颜色标尺【例例4.49】对色图添加颜色标尺。对色图添加颜色标尺。x,y,z=peaks; mesh(x,

17、y,z); colormap(hot(80); colorbar4.4 4.4 图形修饰处理图形修饰处理3 3三维表面图形的着色三维表面图形的着色 三维表面图实际上就是在网格图的每一个网格片上涂三维表面图实际上就是在网格图的每一个网格片上涂上颜色。上颜色。surfsurf函数用默认的着色方式对网格片着色。此外,函数用默认的着色方式对网格片着色。此外,还可以用还可以用shadingshading命令来改变着色方式,命令来改变着色方式,shadingshading命令的调命令的调用格式为:用格式为: shading shading 选项选项 其中,其中,“选项选项”有如下有如下3 3种取值。种取值

18、。facetedfaceted:将每个网格片用其高度对应的颜色进行着色,:将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其颜色是黑色。这是系统的默认着色但网格线仍保留着,其颜色是黑色。这是系统的默认着色方式。方式。flatflat:将每个网格片用同一个颜色进行着色,且网格线也:将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。用相应的颜色,从而使得图形表面显得更加光滑。interpinterp:在网格片内采用颜色插值处理,绘制出的表面图:在网格片内采用颜色插值处理,绘制出的表面图显得最光滑。显得最光滑。 4.4 4.4 图形修饰处理图形修饰处理

19、【例例4.504.50】三种着色方式的效果展示。三种着色方式的效果展示。x,y,z=sphere(20);x,y,z=sphere(20); colormap(copper); colormap(copper); subplot(1,3,1); subplot(1,3,1); surf(x,y,z);axis equal; surf(x,y,z);axis equal; subplot(1,3,2); subplot(1,3,2); surf(x,y,z);shading flat;axis equal surf(x,y,z);shading flat;axis equalsubplot(1,

20、3,3);subplot(1,3,3);surf(x,y,z);shading interp;axis equalsurf(x,y,z);shading interp;axis equal4.4 4.4 图形修饰处理图形修饰处理 除了使用已有的颜色映像,还可以对颜色映像本身进除了使用已有的颜色映像,还可以对颜色映像本身进行操作,函数有行操作,函数有brightenbrighten和和caxiscaxis。 函数函数brightenbrighten的作用是对颜色映像的色彩强弱进行调的作用是对颜色映像的色彩强弱进行调整,其调用格式:整,其调用格式: brighten(beta)brighten(b

21、eta) 当当betabeta大于零时,将增强当前的色彩强度;相反,当大于零时,将增强当前的色彩强度;相反,当betabeta小于零时,将削弱当前的色彩强度。若调用过小于零时,将削弱当前的色彩强度。若调用过brighten(beta)brighten(beta)后再调用一次后再调用一次brighten(beta)brighten(beta),可以很,可以很明显地看到原图的色彩强弱变化。也可以将调整过的颜明显地看到原图的色彩强弱变化。也可以将调整过的颜色映像赋以新的变量名,这样不仅会生成新的颜色映像,色映像赋以新的变量名,这样不仅会生成新的颜色映像,而且被调整的颜色映像的值也不会改变。而且被调整

22、的颜色映像的值也不会改变。4.4 4.4 图形修饰处理图形修饰处理 函数函数caxiscaxis也是一个经常用到的颜色处理函数,使用该也是一个经常用到的颜色处理函数,使用该函数可以自如地控制图形中颜色显示的范围以及色彩与数函数可以自如地控制图形中颜色显示的范围以及色彩与数值的对应关系。其调用格式为:值的对应关系。其调用格式为: caxis(cmin,cmax)caxis(cmin,cmax) cmin,cmax=caxis cmin,cmax=caxis 当使用第一种方式调用时,系统将在当使用第一种方式调用时,系统将在cmin,cmaxcmin,cmax范围内与颜色映像的色值相对应,并依此为图

23、形着色。如范围内与颜色映像的色值相对应,并依此为图形着色。如果数据点的值小于果数据点的值小于cmincmin或大于或大于cmaxcmax时,将按等于时,将按等于cmincmin或或cmaxcmax得数据点的颜色进行着色;如果数据点的全集是得数据点的颜色进行着色;如果数据点的全集是cmin,cmaxcmin,cmax的一个子集,则将按其对应的颜色进行着色,的一个子集,则将按其对应的颜色进行着色,也即此时只利用了颜色映像的一部分。也即此时只利用了颜色映像的一部分。4.4 4.4 图形修饰处理图形修饰处理例对例对4.494.49进行操作:进行操作: caxiscaxis(-2-2,22) 此时数据限

24、超过此时数据限超过caxiscaxis的设定限。结果如下图所示。的设定限。结果如下图所示。4.4 4.4 图形修饰处理图形修饰处理caxis(-10,10)caxis(-10,10) 此时数据限小于此时数据限小于caxiscaxis的设定限,结果如下图所示。的设定限,结果如下图所示。 4.4 4.4 图形修饰处理图形修饰处理 Matlab Matlab语言中对背景颜色语言中对背景颜色进行操作的函数:进行操作的函数:colordefcolordef【例4.51】图形背景色彩控制演示。 colordef nonecolordef none x,y,z=peaks; x,y,z=peaks; mes

25、h(x,y,z); mesh(x,y,z); colordef black colordef black mesh(x,y,z) mesh(x,y,z)4.4 4.4 图形修饰处理图形修饰处理 4.4.3 4.4.3 光照处理光照处理 MATLABMATLAB提供了灯光设置的函数,其调用格式为提供了灯光设置的函数,其调用格式为 light(light(属性属性, ,选项选项) ) 常用属性有表示光的颜色的常用属性有表示光的颜色的colorcolor属性、表示光源形式属性、表示光源形式的的stylestyle属性和表示光源位置的属性和表示光源位置的positionposition属性。属性。co

26、lorcolor属性属性的选项可取相应的颜色字符或的选项可取相应的颜色字符或RGBRGB三元组。三元组。stylestyle属性的选属性的选项有项有infiniteinfinite和和locallocal两个取值,分别表示无限远的两个取值,分别表示无限远的平行光源和近光源。平行光源和近光源。positionposition属性的选项取三维坐标点组属性的选项取三维坐标点组成的向量形式成的向量形式xx,y y,zz。4.4 4.4 图形修饰处理图形修饰处理【例例4.524.52】光照处理后的球面。光照处理后的球面。 x,y,z=sphere(20); subplot(1,2,1); surf(x,

27、y,z);axis equal;light(Position,0,1,1);shading interp;hold on;plot3(0,1,1,p);text(0,1,1,light);subplot(1,2,2);surf(x,y,z);axis equal;light(Position,1,0,1);shading interp;hold on;plot3(1,0,1,p);text(1,0,1,light);4.4 4.4 图形修饰处理图形修饰处理MatlabMatlab语言提供的光源模式函数为语言提供的光源模式函数为lighting.lighting.其调用格式其调用格式 : lig

28、hting lighting 光源模式光源模式 光源模式为光源模式为flat,gourand,phongflat,gourand,phong以及以及nonenone等。其中等。其中flatflat模式为平面模式,图形的光照单元设为图形网格,这模式为平面模式,图形的光照单元设为图形网格,这时能够大量节省系统资源,但图形效果较差,此为默认模时能够大量节省系统资源,但图形效果较差,此为默认模式;式;gourandgourand为点模式,光照单元为图形的像素点;为点模式,光照单元为图形的像素点;phongphong不仅以像素作为光照的基本单元,而且还计算分配了各点不仅以像素作为光照的基本单元,而且还计

29、算分配了各点的反射比;当设置为的反射比;当设置为nonenone时,将关闭图形光源功能。时,将关闭图形光源功能。4.4 4.4 图形修饰处理图形修饰处理【例例4.534.53】下例设置光源模式:下例设置光源模式:x,y,z=peaks;x,y,z=peaks;mesh(x,y,z);mesh(x,y,z);light(position,1,1,1)light(position,1,1,1)lighting phonglighting phong4.4 4.4 图形修饰处理图形修饰处理 图形表面的控制函数图形表面的控制函数materialmaterial。其调用格式如下:。其调用格式如下: ma

30、terialmaterial表面控制模式表面控制模式 控制模式有控制模式有shiny,dull,metalshiny,dull,metal等,其中等,其中shinyshiny模式是指图形表面显示较为光亮的模式,模式是指图形表面显示较为光亮的模式,dulldull则则是指表面显示较为阴暗的色彩模式,而是指表面显示较为阴暗的色彩模式,而metalmetal则是则是指表面呈现金属光泽的模式。指表面呈现金属光泽的模式。4.4 4.4 图形修饰处理图形修饰处理【例4.54】将图形表面设置为metal型。x,y,z=peaks;x,y,z=peaks;mesh(x,y,z);mesh(x,y,z);lig

31、ht(position,1,1,1)light(position,1,1,1)lighting phonglighting phong;material metalmaterial metal4.4 4.4 图形修饰处理图形修饰处理4.4 4.4 图形修饰处理图形修饰处理 另一个涉及光照的函数为另一个涉及光照的函数为surfl,surfl,该函数与三维表面函该函数与三维表面函数数surfsurf极为相似,只是增加了对光源以及图形表面特性的极为相似,只是增加了对光源以及图形表面特性的设置,其调用格式为:设置,其调用格式为: surfl(X,Y,Z,S,K)surfl(X,Y,Z,S,K) 输入变

32、量中,输入变量中,X X,Y Y,Z Z为绘制图形必须的数据矩阵,为绘制图形必须的数据矩阵,而输入变量而输入变量S S为光源控制变量,其具体形式为为光源控制变量,其具体形式为Sx,Sy,SzSx,Sy,Sz或或az,el,az,el,前一种方式给出光源位置,后一种方式给出视前一种方式给出光源位置,后一种方式给出视角;输入变量角;输入变量K K用以控制图形表面形式,具体形式用以控制图形表面形式,具体形式Ka,Kd,Ks,spreadKa,Kd,Ks,spread,其中,其中KaKa表示背景光系数,表示背景光系数,KdKd反映表反映表面漫反射特性,面漫反射特性,KsKs反映表面镜面反射特性,反映表

33、面镜面反射特性,spreadspread是镜面是镜面扩展因子。扩展因子。 4.4 4.4 图形修饰处理图形修饰处理【例例4.554.55】绘制下图所示的三维光照图形。绘制下图所示的三维光照图形。x,y,z=peaks;surfl(x,y,z,1,1,1,0.55 0.8 0.1 10)4.4 4.4 图形修饰处理图形修饰处理4.4.4 4.4.4 图形的裁剪处理图形的裁剪处理 MATLABMATLAB定义的定义的NaNNaN常数可以用于表示那些不可使用的常数可以用于表示那些不可使用的数据,利用这种特性,可以将图形中需要裁剪部分对应数据,利用这种特性,可以将图形中需要裁剪部分对应的函数值设置成的

34、函数值设置成NaNNaN,这样在绘制图形时,函数值为,这样在绘制图形时,函数值为NaNNaN的部分将不显示出来,从而达到对图形进行裁剪的目的。的部分将不显示出来,从而达到对图形进行裁剪的目的。【例例4.564.56】已知已知 ,绘制三维曲面图,并裁,绘制三维曲面图,并裁掉图中掉图中x x和和y y都小于都小于1.51.5的部分。的部分。4.4 4.4 图形修饰处理图形修饰处理x,y=meshgrid(-5:0.2:5);x,y=meshgrid(-5:0.2:5);z=sin(sqrt(x.2+y.2)./(sqrt(x.2+y.2)+eps)z=sin(sqrt(x.2+y.2)./(sqr

35、t(x.2+y.2)+eps); ;subplot(1,2,1);mesh(x,y,z);subplot(1,2,1);mesh(x,y,z);i=find(x-1.5 & y-1.5);i=find(x-1.5 & y-1.5);z1=z;z1(i)=NaN;z1=z;z1(i)=NaN;subplot(1,2,2);mesh(x,y,z1);subplot(1,2,2);mesh(x,y,z1);4.4 4.4 图形修饰处理图形修饰处理4.5 4.5 隐函数绘图隐函数绘图 如果给定了函数的显式表达式,可以先设置自变量向如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算出函

36、数向量,从而用量,然后根据表达式计算出函数向量,从而用plotplot等函等函数绘制出图形。但如果函数用隐函数形式给出,如数绘制出图形。但如果函数用隐函数形式给出,如x x3 3+ +y y3 35 5xyxy+ +1/51/5= =0 0,则很难用上述方法绘制出图形。,则很难用上述方法绘制出图形。MATLABMATLAB提供了一个提供了一个ezplotezplot函数绘制二元隐函数图形和函数绘制二元隐函数图形和ezplot3ezplot3函数绘制三元隐函数图形,下面介绍其用法。函数绘制三元隐函数图形,下面介绍其用法。1 1ezplotezplot函数函数(1 1)对于一元函数)对于一元函数f

37、 f( (x x) ),ezplotezplot函数的调用格式为函数的调用格式为 ezplot(f,a,b)ezplot(f,a,b) 在区间在区间a a x x b b绘制绘制f f( (x x) )的图形。的图形。a a、b b默认时,在区间默认时,在区间2 2 x x 2 2 绘制绘制f f = = f f( (x x) )的图形。的图形。4.5 4.5 隐函数绘图隐函数绘图 (2 2)对于二元函数)对于二元函数f f( (x x, ,y y) ),ezplotezplot函数的调用格式为函数的调用格式为 ezplot(f,a,b,c,d)ezplot(f,a,b,c,d) 在区间在区间

38、a a x x b b和和c c y y d d绘制绘制f f( (x x, ,y y) )的图形。的图形。a a、b b、c c、d d默认时,在区间默认时,在区间2 2 x x 2 2 和和2 2 y y22 绘制绘制f f( (x x, ,y y) )的图形。的图形。(3 3)对于参数方程)对于参数方程x x = funx = funx( (t t) )和和y y = funy = funy( (t t) ),ezplotezplot函数的调用格式为函数的调用格式为 ezplot(x,y, a,b)ezplot(x,y, a,b) 在区间在区间a a t t b b绘制绘制x x= =f

39、unxfunx( (t t) )和和y y= =funyfuny( (t t) )的图形。的图形。a a、b b默认时,在区间默认时,在区间0 0 t t 2 2 绘制图形。绘制图形。4.5 4.5 隐函数绘图隐函数绘图【例例4.574.57】隐函数绘图应用举例。隐函数绘图应用举例。subplot(2,2,1);subplot(2,2,1);ezplot(cos(tan(pi*x),0,1)ezplot(cos(tan(pi*x),0,1)subplot(2,2,3);subplot(2,2,3);ezplot(x2-y4)ezplot(x2-y4)subplot(2,2,2 4);subpl

40、ot(2,2,2 4);ezplot(5*cos(5*t),4*sqrt(2*t) ,0,2*pi);ezplot(5*cos(5*t),4*sqrt(2*t) ,0,2*pi);4.5 4.5 隐函数绘图隐函数绘图2 2ezplot3ezplot3函数函数 ezplot3ezplot3函数的调用格式为函数的调用格式为 ezplot3(x,y,z,a,b)ezplot3(x,y,z,a,b) 对于参数方程在区间对于参数方程在区间a a t t b b绘制绘制x x= =funxfunx( (t t) ),y y= =funyfuny( (t t) )和和z z= =funzfunz( (t t

41、) )的图形。未指定区间时,默认的图形。未指定区间时,默认在区间在区间0 0 t t 2 2 绘制图形。例如,绘制例绘制图形。例如,绘制例4.234.23的三维曲的三维曲线也可以采用以下命令:线也可以采用以下命令:ezplot3(sin(t)+t*cos(t),cos(t)-ezplot3(sin(t)+t*cos(t),cos(t)-t*sin(t),t,0,10*pi);t*sin(t),t,0,10*pi);4.6 4.6 图像处理与动画制作图像处理与动画制作4.6.1 4.6.1 图像处理图像处理 MATLABMATLAB基本系统提供了几个用于简单图像处理的函数,基本系统提供了几个用于

42、简单图像处理的函数,利用这些函数可进行图像的读写和显示。此外,利用这些函数可进行图像的读写和显示。此外,MATLABMATLAB还还有一个功能更强的图像处理工具箱(有一个功能更强的图像处理工具箱(Image Processing Image Processing ToolboxToolbox),可以对图像进行更专业的处理。),可以对图像进行更专业的处理。4.6 4.6 图像处理与动画制作图像处理与动画制作 1 1imreadimread和和imwriteimwrite函数函数 在在matlabmatlab环境下调用外部图形的函数为环境下调用外部图形的函数为imreadimread,通过,通过这

43、个函数可以把由其他绘图软件编辑的图形转换成这个函数可以把由其他绘图软件编辑的图形转换成matlabmatlab可识别的类型。可识别的类型。 函数的调用格式为:函数的调用格式为: A=imread(A=imread(fnamefname,fmtfmt) ) 其中,其中,fnamefname为图形文件名,为图形文件名,fmtfmt为图形类型(可省略)为图形类型(可省略)。如果图形为灰度图像,则返回值。如果图形为灰度图像,则返回值A A为两列矩阵;如果图为两列矩阵;如果图形为真色,则返回值形为真色,则返回值A A为三列矩阵。为三列矩阵。 此处所能调用的图形文件应当在当前此处所能调用的图形文件应当在当

44、前matlabmatlab的搜索路的搜索路径上,否则将无法识别。径上,否则将无法识别。 matlabmatlab可识别的图形类型大致包括:可识别的图形类型大致包括:jpeg/jpg,tif/tiff,gif,bmp,png,hdf,pcx,xwd,ico,cur,jpeg/jpg,tif/tiff,gif,bmp,png,hdf,pcx,xwd,ico,cur,ras,pbm,pgm,ppmras,pbm,pgm,ppm。4.6 4.6 图像处理与动画制作图像处理与动画制作【例例4.584.58】读出图形数据矩阵的阶数。读出图形数据矩阵的阶数。A=imread(SDC11889.JPG);A=

45、imread(SDC11889.JPG);size(A)size(A)ans =ans = 2176 3264 3 2176 3264 3 该图对应的是一个三维数组,其中每一维对该图对应的是一个三维数组,其中每一维对应基色(红、绿、蓝)中的一种,而应基色(红、绿、蓝)中的一种,而21762176和和32643264则对应于图形的像素点的分布。则对应于图形的像素点的分布。4.6 4.6 图像处理与动画制作图像处理与动画制作 matlabmatlab对应的写入图像文件的函数为对应的写入图像文件的函数为imwrite,imwrite,该函数将图像矩阵写入外部文件,其调该函数将图像矩阵写入外部文件,其

46、调用格式为:用格式为: imwrite(A,fname,fmt)imwrite(A,fname,fmt) 其中,其中,fnamefname为读为读/ /写的图像文件名,写的图像文件名,fmtfmt为图为图像文件格式,如像文件格式,如bmpbmp、jpgjpg、gifgif、tiftif、pngpng等。若读写的是灰度图像,则等。若读写的是灰度图像,则A A为二维矩阵;为二维矩阵;若读写的是彩色图像,则若读写的是彩色图像,则A A为三维矩阵,第三维存为三维矩阵,第三维存储颜色数据。储颜色数据。4.6 4.6 图像处理与动画制作图像处理与动画制作 matlabmatlab语言还提供了显示图像信息的

47、函数语言还提供了显示图像信息的函数imfinfo,imfinfo,其调用格式为:其调用格式为: imfinfo(fname,fmt)imfinfo(fname,fmt) 调用该函数返回一结构型数组,该数组反映调用该函数返回一结构型数组,该数组反映图形深层次的信息,对于不同的图形格式将显示图形深层次的信息,对于不同的图形格式将显示不同的图形信息,但是以下不同的图形信息,但是以下9 9中图形信息是任何格中图形信息是任何格式都有的:式都有的:Filename,FileModDat,FileSize,Format,FormatVFilename,FileModDat,FileSize,Format,F

48、ormatVersion,Width,Height,BitDepthersion,Width,Height,BitDepth和和ColorType.ColorType.4.6 4.6 图像处理与动画制作图像处理与动画制作【例4.59】pictureinfo=imfinfo(SDC11889.JPG,jpg)pictureinfo = Filename: SDC11889.JPG FileModDate: 01-Apr-2010 09:32:56 FileSize: 809108 Format: jpg FormatVersion: Width: 3264 Height: 2176 BitDep

49、th: 24 ColorType: truecolor FormatSignature: Comment: 4.6 4.6 图像处理与动画制作图像处理与动画制作2 2imageimage和和imagescimagesc函数函数 在在matlabmatlab环境下显示外部图形的函数为环境下显示外部图形的函数为image,image,其调用格式为:其调用格式为: image(C) %Cimage(C) %C为为matlabmatlab读取的图形数据矩阵读取的图形数据矩阵【例例4.604.60】在图形窗口中显示外部图形文件。在图形窗口中显示外部图形文件。A=imread(SDC11889.JPG);

50、 A=imread(SDC11889.JPG); image(A);image(A);axis image offaxis image off4.6 4.6 图像处理与动画制作图像处理与动画制作4.6 4.6 图像处理与动画制作图像处理与动画制作 imshowimshow和和imagescimagesc函数也是用于显示图像。函数也是用于显示图像。imagescimagesc函数可以按照指定的色图显示灰度图像,函数可以按照指定的色图显示灰度图像,色图可以通过色图可以通过colormapcolormap函数设置。函数设置。【例例4.614.61】load clownload clownclims

51、= 10 60;clims = 10 60;imagesc(X,clims)imagesc(X,clims)colormap(gray)colormap(gray)4.6 4.6 图像处理与动画制作图像处理与动画制作4.6.2 4.6.2 动画制作动画制作 MATLABMATLAB具有动画制作能力,它可以存储一系具有动画制作能力,它可以存储一系列各种类型的二维或三维图,然后像放电影一样把列各种类型的二维或三维图,然后像放电影一样把它们按次序播放出来,称为逐帧动画。一种明显的它们按次序播放出来,称为逐帧动画。一种明显的动画类型是取出一幅三维图形,然后缓慢地将它旋动画类型是取出一幅三维图形,然后缓

52、慢地将它旋转,这样就可以从不同角度来观察它。另一种类型转,这样就可以从不同角度来观察它。另一种类型是在描绘质点运动轨迹的动画,称为轨迹动画。是在描绘质点运动轨迹的动画,称为轨迹动画。4.6 4.6 图像处理与动画制作图像处理与动画制作1 1创建逐帧动画创建逐帧动画 MATLABMATLAB提供提供getframegetframe、movieinmoviein和和moviemovie函数进函数进行逐帧动画制作。创建逐帧动画包括两个步骤。行逐帧动画制作。创建逐帧动画包括两个步骤。(1 1)用)用getframegetframe函数截取画面信息(一幅画面称为函数截取画面信息(一幅画面称为动画中的一帧

53、)。动画中的一帧)。(2 2)movie(M,n)movie(M,n)函数播放由矩阵函数播放由矩阵M M所定义的画面所定义的画面n n次,次,默认时播放一次。矩阵默认时播放一次。矩阵M M用来保存用来保存n n幅画面的数据,幅画面的数据,每列存储一帧画面信息,以备播放。每列存储一帧画面信息,以备播放。4.6 4.6 图像处理与动画制作图像处理与动画制作【例例4.624.62】绘制一个水平放置的瓶状柱面,并且将它绕绘制一个水平放置的瓶状柱面,并且将它绕z z轴轴旋转。旋转。t=0:pi/20:2*pi;t=0:pi/20:2*pi;x,y,z= cylinder(2+sin(t),30);x,y

54、,z= cylinder(2+sin(t),30);mesh(z,y,x)mesh(z,y,x)axis off;axis off;shading interp;shading interp;colormap(hsv);colormap(hsv);for k=1:20for k=1:20 view(-37.5+18*(k-1),30) view(-37.5+18*(k-1),30)% %改变视点改变视点 M(k) =getframe;M(k) =getframe;% %将图形保存到将图形保存到m m矩阵矩阵endendmovie(M,2);movie(M,2);% %播放画面播放画面2 2次次

55、4.6 4.6 图像处理与动画制作图像处理与动画制作2 2创建轨迹动画创建轨迹动画 MATLABMATLAB中提供了中提供了cometcomet和和comet3comet3函数展现质点函数展现质点在二维平面和三维空间的运动轨迹,其调用格式在二维平面和三维空间的运动轨迹,其调用格式为为comet(x,y,p)comet(x,y,p)comet3(x,y,z,p)comet3(x,y,z,p) 其中,每一组其中,每一组x x、y y、z z组成一组曲线的坐标参组成一组曲线的坐标参数,用法与数,用法与plotplot和和plot3plot3函数相同。选项函数相同。选项p p用于设用于设置绘制的彗星轨

56、迹线的彗长,彗长为置绘制的彗星轨迹线的彗长,彗长为p p倍倍y y向量的向量的长度。长度。4.6 4.6 图像处理与动画制作图像处理与动画制作【例例4.634.63】生成例生成例4.234.23的图形轨迹。的图形轨迹。t=0:pi/250:10*pi;t=0:pi/250:10*pi;x=sin(t)+t.*cos(t);x=sin(t)+t.*cos(t);y=cos(t)-t.*sin(t);y=cos(t)-t.*sin(t);comet3(x,y,t);comet3(x,y,t);本本 章章 小小 结结plotplot函数:函数:两个纵坐标标度的函数两个纵坐标标度的函数plotyy:p

57、lotyy:设置曲线样式设置曲线样式: :线型,颜色,标记符线型,颜色,标记符图形标注与坐标控制图形标注与坐标控制titletitle(图形名称)(图形名称)xlabelxlabel(x x轴说明)轴说明)ylabelylabel(y y轴说明)轴说明)texttext(x x,y y,图形说明),图形说明)gtext(gtext(函数名函数名, ,属性,属性值)属性,属性值)legendlegend(图例(图例1 1,图例,图例2 2,)本本 章章 小小 结结图形控制图形控制p坐标轴的控制函数坐标轴的控制函数axisaxis:axis(v),axis :axis(v),axis 控制字符串控

58、制字符串p坐标轴缩放函数坐标轴缩放函数zoomzoom:zoomzoom控制字符串控制字符串p平面的坐标网图函数平面的坐标网图函数gridgridp坐标轴封闭函数坐标轴封闭函数boxbox对函数自适应采样的绘图函数对函数自适应采样的绘图函数 fplot(fname,lims,tol,fplot(fname,lims,tol,选项选项) )多图形显示多图形显示 图形窗口的分割:图形窗口的分割:subplot(m,n,p)subplot(m,n,p)图形叠加图形叠加 hold on/offhold on/off本本 章章 小小 结结其他坐标系其他坐标系对数坐标图形对数坐标图形(semilogx,s

59、emilogy,loglog)极坐标图极坐标图(polar(theta,rho,选项选项)二维特殊函数图形二维特殊函数图形条形图条形图(bar,barh): bar(x,width,style)bar(x,width,style):饼图:饼图:pie(x,explode)散点图:散点图:scatter(x,y,s,c,filled)实心图:实心图: fill(x1,y1,选项选项1,x2,y2,选项选项2,)复数向量图:复数向量图: compass(z)compass(z)或或compass(u,v)compass(u,v) featuher(z)featuher(z)或或faether(u,

60、v)faether(u,v)等高线图:等高线图:contour(z,n/v);contour(x,y,z,n/v)本本 章章 小小 结结三维曲线三维曲线 plot3(x,y,z) plot3(X,Y,Z) plot3(X,Y,Z,s): plot3(x1,y1,z1,s1,x2,y2,z2,s2,plot3(x1,y1,z1,s1,x2,y2,z2,s2,xn,yn,zn,sn,xn,yn,zn,sn三维曲面三维曲面网图函数:网图函数: X,Y=meshgrid(x,y): X,Y=meshgrid(x,y): 函数函数meshmesh : Mesh(X,Y,Z,C) Mesh(X,Y,Z,C

61、) , mesh(X,Y,Z) mesh(X,Y,Z) 函数函数meshcmeshc:函数函数meshzmeshz :着色函数:着色函数: surfsurf(X X,Y Y,Z Z,C C)特殊的三维图形函数特殊的三维图形函数:(pie3(x,explode), pie3(x,explode), surfc(X,Y,Z); surfc(X,Y,Z); contour3; peakscontour3; peaks函数函数; cylinder; cylinder函数函数; sphere; sphere函数函数; bar3; bar3和和bar3hbar3h函函数数; ;三维多边形函数三维多边形函数

62、fill3;fill3;瀑布图函数瀑布图函数waterfall; trimeshwaterfall; trimesh函数函数; ;三角三角形刻面图函数形刻面图函数trisurf; slice(trisurf; slice(, ,methodmethod)本本 章章 小小 结结 图形修饰处理图形修饰处理视点处理视点处理(view(az,el)(view(az,el)函数函数viewmtxviewmtx给出指定视角的正交转换矩阵给出指定视角的正交转换矩阵函数函数rotate3drotate3d色彩处理色彩处理( (颜色向量表示,色图(颜色向量表示,色图(colormap(m)colormap(m)

63、, pcolorpcolor(c), c), rgbplot(colormap),rgbplot(colormap),及及colorbar(colorbar(vertvert) ) ,colorbar(,colorbar(horizhoriz) )三维表面图形的着色的函数:三维表面图形的着色的函数: shading shading 选项选项对颜色映像的色彩强弱进行调整的函数:对颜色映像的色彩强弱进行调整的函数:brighten(beta)brighten(beta)本本 章章 小小 结结控制图形中颜色显示的范围以及色彩与数值的对应关系的函数:控制图形中颜色显示的范围以及色彩与数值的对应关系的函

64、数: caxis(cmin,cmax)caxis(cmin,cmax) cmin,cmax=caxis cmin,cmax=caxis背景颜色进行操作的函数:背景颜色进行操作的函数:colordefcolordef灯光设置函数灯光设置函数: : light(light(属性属性, ,选项选项) )光源模式函数为光源模式函数为lightinglighting:lighting lighting 光源模式光源模式图形表面的控制函数图形表面的控制函数materialmaterial: materialmaterial表面控制模式表面控制模式 surflsurfl(对光源以及图形表面特性的设置)对光源

65、以及图形表面特性的设置): surfl(X,Y,Z,S,K)图形的裁剪处理图形的裁剪处理本本 章章 小小 结结隐函数绘图隐函数绘图 ezplotezplot函数:函数: ezplot(f,a,b)ezplot(f,a,b), ezplot(f,a,b,c,d)ezplot(f,a,b,c,d), ezplot(x,y, ezplot(x,y, a,b)a,b) ezplot3函数:函数: ezplot3(x,y,z,a,b)ezplot3(x,y,z,a,b)图像处理与动画制作图像处理与动画制作 imread和和imwrite函数:函数:A=imread(A=imread(fnamefname

66、,fmtfmt) ), imwrite(A,fname,fmt)imwrite(A,fname,fmt)显示图像信息的函数显示图像信息的函数imfinfo: imfinfo(fname,fmt)imfinfo(fname,fmt)显示外部图形的函数:显示外部图形的函数: image和和imagesc 创建逐帧动画:创建逐帧动画:getframe ,movie(M,n)getframe ,movie(M,n)创建轨迹动画:创建轨迹动画:comet(x,y,p),comet(x,y,p),comet3(x,y,z,p)comet3(x,y,z,p)作作 业业P77:思考题: 1,2,3,4,5,6。实验题:1,2,3,4,5,7,8,9,10

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号