780 likes | 972 Views
第四章 图形处理功能. MATLAB 的图形处理工具箱从简单的点、线、面处理发展到了集二维、三维甚至四维表现图和对图进行着色、消隐、光照、渲染及多视角处理等强大功能包,数据可视化和绘图方面的能力。 本章主要内容: 4.1 二维图形 4.2 三维图形 4.3 图形处理的基本技术 4.4 图形处理的高级技术 4.5 图形窗口. 4.1 二维图形. 二维图形的绘制是 MATLAB 图形处理的基础,在数值计算的过程中,用户可通过 MATLAB 函数将计算结果图形化,以实现对结果数据的深层次理解。. 4.1.1 基本绘图指令.
E N D
第四章 图形处理功能 MATLAB的图形处理工具箱从简单的点、线、面处理发展到了集二维、三维甚至四维表现图和对图进行着色、消隐、光照、渲染及多视角处理等强大功能包,数据可视化和绘图方面的能力。 本章主要内容: • 4.1 二维图形 • 4.2 三维图形 • 4.3 图形处理的基本技术 • 4.4 图形处理的高级技术 • 4.5 图形窗口
4.1 二维图形 • 二维图形的绘制是MATLAB图形处理的基础,在数值计算的过程中,用户可通过MATLAB函数将计算结果图形化,以实现对结果数据的深层次理解。
4.1.1 基本绘图指令 • 绘制函数——plot函数 • 函数能够将向量或者矩阵中的数据绘制在图形窗体中,并且可以指定不同的线型和色彩 基本格式 • 绘制一条曲线 plot(xdata,ydata,’color_linestyle_marker’) • 绘制多条曲线 plot(xdata1,ydata1,’clm1’,xdata2,ydata2,’clm2’,……)
4.2 三维图形 • 4.2.1 基本绘图命令 • plot3、网图函数、 • 着色图 • 1.plot3 • 2.网图函数
4.3 图形处理的基本技术 • 图形控制、图形标注、图形保持、子图的绘制 • 4.3.1图形控制 • 1.坐标轴控制axis
2.坐标轴缩放zoom • Zoom的控制符:当zoom处于on时,可通过鼠标进行图形缩放
3. 图形的标注 • (1) 坐标轴标注:title为图形添加标题、xlablel,ylabel为坐标轴添加标注 • 标注时指数或分母应放在大括号内{} • (2)文本标注 • Text(x,y,’标注文本及控制字符串’) • (3)交互文本标注gtext:用户可通过鼠标来选择文本输入点 • (4)图例标注legend
4.图形保持与子图 (1)图形保持 Hold on 启动图形保持 Hold off 关闭图形保持 Hold 切换 (2)子图 Subplot(m,n,p)分割图形窗口成m*n个子绘图区,并从左至右编号 注:对一个子图进行图形设置不影响其它子图
4.4 图形处理的高级技术 • 1. 颜色映像:默认状态为64*3的颜色矩阵,每个颜色映像均描述了64种颜色的RGB属性。 • 2.调用颜色映像函数为colormap ,其输入变量为一3 列矩阵。如colormap(pink(8))
3. 调用所定义的颜色 • 定义颜色后,用户可调用所定义的颜色映像为图形服务: • (1)pcolor(C):以当前颜色映像为矩阵C进行“着色”,即根据矩阵元素的大小在当前颜色映像中进行插值着色。 • shading’控制字符串’,与pcolor相结合使用,其作用是以不同方式为图形元素着色。控制字符串有以下3种: • Faceted以平面为着色单位 • Interp以插值形式为图形的像点着色 • Flat以平滑形式
(2) rgbplot: 将矩阵的三列值分别以红、绿、蓝绘出。 • 如rgbplot(hot(80)) • (3) colorbar: 在当前的图形窗口中显示颜色标尺,用来反映当前便用的颜色映像。 • (4) brighten: 调整颜色映像的色彩强弱 • (5)caxis:控制图形中颜色显示的范围及色彩与数值的对应关系 • (6) colordef: 对背景颜色进行操作
4. 视角与光照 • (1)视角控制:view, viewmtx, rotate3D • View(az,el): az为方位角,即从y轴负方向开始以逆时针旋转的角度;el为仰角,即朝向z轴旋转的角度。 • Viewmtx:给出指定视角的正交转换矩阵 • rotate3D:触发图形窗口的rotate3D选项,用鼠标来控制视角变化 • (2)光照控制
(3) surfl(x,y,z,s,k): 三维光照图形,对surf增加了对光源位置及图形表面光特性的设置。
5. 图像处理 • (1)imread: Matlab环境下调用外部图形的函数,通过它可以把其他图形转换成Matlab可识别的类型。 • (2)imwrite: 将图像矩阵写入外部文件 • (3)imfinfo: 显示图像信息 • (4)image:在图形窗口中显示外部图像文件: • Matlab图像形式: • 索引图:存储时需要一个图像数据矩阵(下标对应图像像素点下标,元素值为颜色位置)和一个颜色映像矩阵;
灰度图像:只需一个图像数据矩阵(下标对应像素点下标,元素值为当前颜色映像的插值因子。灰度图像:只需一个图像数据矩阵(下标对应像素点下标,元素值为当前颜色映像的插值因子。 • 真彩图像:只需一个三维数据数组,每一面的元素下标对应像素点的下标,值为一个基色,三个面构成其真色。
4.5 图形编辑器 • MATLAB的图形窗体进入编辑模式后,可以向其中的对象添加文本、箭头、直线等,还可以利用编辑工具完成图形对象的编辑工作 • 进入图形编辑模式的方法 • 执行图形窗体中“Tool”菜单下的“Edit Plot”命令 • 单击图形窗体工具栏中选择对象按钮 • 执行“Edit”菜单下的菜单命令或者“Insert”菜单下的菜单命令 • 在MATLAB命令行窗口中,键入“plotedit”指令 • 回到正常的显示模式 • 完成工作后,单击 按钮 • 图形编辑模式下的主要工作 • 设置各种图形对象的属性
图形编辑器(续) 例6-8 利用图形编辑模式编辑轴对象属性 1、进入图形编辑模式 2、用鼠标单击轴
控制绘图区域(续) 3、打开轴对象的属性编辑器 • 执行“Edit”菜单下的“”命令 • 执行鼠标右键快捷菜单下的“”命令 • 在MATLAB命令行窗口中键入指令,在弹出的图形属性对话框中选择轴对象
格式化文本标注(续) 例:% 使用不同的文本标注属性 % 准备数据并绘制曲线 x=0:.1:2*pi;y=sin(x);plot(x,y) grid on;hold on plot(x,exp(-x),'r:*'); % 添加标注 title('2-D Plots','FontName','Arial','FontSize',16) % 使用中文字体 xlabel('时间','FontName','隶书','FontSize',16) % 加粗文本 ylabel('Sin(t)','FontWeight','Bold') % 修改字号 text(pi/3,sin(pi/3),'<--Sin(\pi/3)','FontSize',12) legend('Sine Wave','Decaying Exponential') hold off
特殊字符标注 • 利用LaTeX字符集和MATLAB文本注释的定义,可以在MATLAB的图形文本标注中使用希腊字符、数学符号或者上标和下标字体等 • 进行上标文本的注释需要使用“^”字符,进行下标文本的注释需要使用“_”字符 • ^{supeerstring}——进行上标文本的注释 • _{substring}——进行下标文本的注释 • 使用特殊字符标注时,要用“\”符号 • \bf:加粗字体 • \it:斜字体 • \sl:斜字体 • \rm:正常字体 • \fontname{fontname}:定义使用特殊的字体名称 • \fontsize{fontsize}:定义使用特殊的字体大小
特殊字符标注(续) 例6-10 使用特殊文本标注 001 function latex_examp 002 % LATEX_EXAMP在文本注释中使用特殊文本 003 alpha=-0.5; 004 beta=3; 005 A=50; 006 t=0:.1:10; 007 y=A*exp(alpha*t).*sin(beta*t); 008 % 绘制曲线 009 plot(t,y);
特殊字符标注(续) 010 % 添加特殊文本注释 011 title(‘\fontname{隶书}\fontsize{16}{隶书} \fontname{Impact}{Impact}') 012 xlabel('^{上标}and_{下标}') 013 ylabel('Some\bf粗体\rm and some\it{斜体}') 014 txt={'y={\itAe}^{\alphax}sin(\beta\itt)', ['\itA\rm','=',num2str(A)], ['\alpha=',num2str(alpha)], ['\beta=',num2str(beta)]}; 015 text(2,22,txt);
4.6 图形修饰 • 图形颜色的修饰 • 图形效果的修饰
一、图形颜色的修饰 • colormap(MAP) —— 色图设定函数,MAP为m×3维色图矩阵 • 图形颜色可根据需要任意生成,也可用MATLAB配备的色图函数 • shading faceted — 网格修饰,缺省方式 • shading flat —— 去掉黑色线条,根据小方块的值确定颜色 • shading interp —— 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色
图形颜色的修饰(续) 例: >> z=peaks(30); >> surf(z) peaks函数可产生一个凹凸有致的曲面,该曲面包含三个局部极大点和三个局部极小点
图形颜色的修饰(续) 1、shading flat —— 去掉黑色线条,根据小方块的值确定颜色 >> shading flat
图形颜色的修饰(续) 2、 shading interp —— 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色 >> shading interp
图形颜色的修饰(续) 3、 shading faceted — 网格修饰,缺省方式 >> shading faceted
二、图形效果的修饰 • 透视与消隐—— 用于网线图 • 裁剪修饰 ——用于网线图、曲面图 • 视角修饰 —— 观察不同角度的三维视图 • 其它修饰: a. 水线修饰 b. 等高线修饰
1、透视与消隐 • 透视与消隐—— 用于网线图 • 使用函数hidden on和hidden off • 函数hidden on——消隐(默认) • 函数hidden off——透视
透视与消隐(续) 例 >> p = peaks(30); >> mesh(p)
透视与消隐(续) >> hidden off (透视)
透视与消隐(续) >> hidden on (消隐)
2、裁剪修饰 • 裁剪修饰 ——用于网线图、曲面图 • 裁剪就是将网线图或曲面图切掉一部分,以显示不同的效果 • 用NaN或nan(Not a Number,即“非数值”)来取代矩阵某一部分的值
裁剪修饰(续) 例:>> p=peaks; >> p(30:40,20:30)=nan*p(30:40,20:30); >> surf(p)
裁剪修饰(续) 例:>> p=peaks; >> p(30:40,20:30)=nan*p(30:40,20:30); >> mesh(p)
3、视角修饰 • 视角修饰 —— 观察不同角度的三维视图 • 视角修饰 ——用于网线图、曲面图 • 视角修饰 • 使用函数view(az,el)进行视角修饰 az ----方位角;el ---- 俯视角 省缺值为:az=-37.5; el=30
视角修饰(续) 例: >> z=peaks(40); >> subplot(2,2,1);mesh(z); >> subplot(2,2,2);mesh(z);view(-15,60); >> subplot(2,2,3);mesh(z);view(-90,0); >> subplot(2,2,4);mesh(z);view(-7,-10)
视角修饰(续) 例: >> z=peaks(40); >> subplot(2,2,1);surf(z); >> subplot(2,2,2);surf(z);view(-15,60); >> subplot(2,2,3);surf(z);view(-90,0); >> subplot(2,2,4);surf(z);view(-7,-10)
4、其他修饰 • 其它修饰: (1)水线修饰 (2)等高线修饰
(1)水线修饰 • 使用waterfall命令可在X方向或Y方向产生水流效果 • 对于网线图和曲面图,水线修饰效果一样
水线修饰(续) 例: >> z=peaks(40); >>mesh(z) >> waterfall(z) 或 >> z=peaks(40); >> surf(z) >> waterfall(z) >> z=peaks(40); >> waterfall(z)
(2)等高线修饰 • meshc函数用来绘制具有等高线性质的mesh网线 • surfc函数绘制具有等高线性质的surf曲面