MATLAB图形处理功能2Word文件下载.docx
- 文档编号:22314730
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:13
- 大小:22.78KB
MATLAB图形处理功能2Word文件下载.docx
《MATLAB图形处理功能2Word文件下载.docx》由会员分享,可在线阅读,更多相关《MATLAB图形处理功能2Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
mesh(a)
(2)meshgrid按指定方式生成网格矩阵,调用格式为:
[X,Y,Z]=meshgrid(x,y,z)分别创建X,Y,Z三个m×
n×
k阶的矩阵,矩阵的阶数由x,y,z三个矢量的长度m,n,k确定,X,Y,Z三个矩阵表示了三维空间的网格,如省略了Z,则创建二维网格。
[x,y,z]=meshgrid(2,3,6);
3.网格图(Meshing)
*mesh(z)绘制分别以m×
n阶矩阵z的行数和列数为x和y坐标
([1:
m],[1:
n]),以z的对应元素值为z坐标的三维网格图。
*mesh(x,y,z)绘制分别以矩阵x,y,z的元素值为坐标的三维网格图,x,y,z必须为同阶矩阵。
*函数Meshc:
将网格图与等高线一起绘制。
*函数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)
(1)绘制表面着色图
surf,绘制表面着色图的基本命令;
surfc,绘制带等高线的着色表面图;
surfl可以控制表面图的光照效应。
函数surf的调用格式:
surf(z)绘制分别以m×
m],[1:
n]),以z的对应元素值为z坐标的三维表面图。
surf(x,y,z)绘制分别以矩阵x,y,z的元素值为坐标的三维表面图,
x,y,z必须为同阶矩阵。
n]),以z的对应元素值为z
surf(x,y,z,c)用C定义的颜色绘制三维表面图。
surf(…,’PropertyName’,PropertyValue)定义三维表面属性图。
surfc(…)绘制带等高线的三维表面图。
h=surf(…)和h=surfc(…)
返回表面图的图形对象句柄。
用surf函数画一个椭圆表面。
(a)生成数据并绘制表面图
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)transformsthedomainspecifiedbyvectors
xandyintoarraysXandYthatcanbeusedfortheevaluation
offunctionsoftwovariablesand3-Dsurfaceplots.
TherowsoftheoutputarrayXarecopiesofthevectorxand
thecolumnsoftheoutputarrayYarecopiesofthevectory.
(2)用surfl函数绘制带光照效果的表面图
surfl(x,y,z)
colormap(hot)
(3)调用表面色彩渲染函数shading,控制表面颜色连续变化。
shadinginterp
shading函数有三个可选择参数flat,faceted,interp
例:
不同shading函数参数设置的效果对照
figure
(1)
surf(peaks(20))
shadingflat
%网格的每个线段和表面都有相同的颜色
figure
(2)
shadingfaceted
%在flat的基础上加黑色网格
figure(3)
shadinginterp
%网格的每个线段和表面上的颜色都是变化的
产生一个旋转柱面体。
pi/12:
3*pi;
r=abs(exp(-0.25*t).*sin(t));
[x,y,z]=cylinder(r,30);
colormap(prism)
%按照预定的色彩索引映射色图
5.表面图形的透明处理hiddenoff:
是个开关型命令,可以看到被遮挡的网格线条,时图形透明
有无透明处理的效果对比。
[x,y]=meshgrid(-8:
.5:
8);
R=sqrt(x.^2+y.^2)+eps;
Z=sin(R)./R;
figure
(1)
%hiddenon(缺省,无透明处理)
mesh(Z)
colormap([0,1,0])
figure
(2)
%hiddenoff(做透明处理)
colormap([0,0.2,0.5])
hiddenoff
6.表面图形的颜色映射colormap:
colormap函数用于按照预定的色彩索引映射色图:
colormap([RGB颜色矢量函数])或colormap(MAP),(RGB颜色表(表6—10),用于网格图mesh;
色彩映射表:
(表6—11))用于表面图surf。
(RGB颜色表6—10)(色彩映射表表6—11)
7.切片图(Slicefigure)
slice(X,Y,Z,v,xi,yi,zi):
四维可视化函数,X,Y,Z为使用meshgrid函数生成的三维网格坐标矩阵,xi,yi,zi为切片位置。
slice用于实现三元函数(v=f(x,y,z)图形函数)的可视化表现,绘制三维物体切片图。
函数的四维表现。
x=-2:
2;
y=-2:
0.25:
z=-2:
[X,Y,Z]=meshgrid(x,y,z);
%形成X,Y,Z三维网格坐标矩阵
v=X.*exp(-X.^2-Y.^2-Z.^2);
%所绘制的图形的函数
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'
)%创建水平色条,也可用colorbar(‘vert’)创建垂直色条
view([-30,45])
五.图形处理的高级技术(Advancedtechnologyofimageprocessing)
1.视图(View)
控制视图和旋转的函数:
view,viewmtx,rotate,rotate3d
(1)视图方向:
view(az,el)
az(azimuth)---方位角,绕z轴旋转,逆时针为正,el(elevation)---仰角,从xy平面向z轴旋转的角度,朝向z轴的旋转为正。
缺省状态二维图形:
az=0o,el=90o,三维图形:
az=-37.5o,el=30o
view([vx,vy,vz])
返回视点的直角坐标
比较不同视图的视觉效果。
peaks(50)
view(90,0)
view(30,45)
view
(2)
%二维平面图
(2)图形旋转:
rotate3d三维视图变化命令,可以用鼠标控制视图的变化。
rotate3d
2.光照
(1)创建光源
*light(‘color’,option1,’style’,option2,’position’,option3)
不使用此函数时,图形采用各处相等的漫射光,采用后产生确定属性的光源,缺省设置为无穷远处的白色光源穿过[1,0,1]射向坐标原点。
(2)光照模式
lightoptions:
flat:
入射光均匀照射在图形对象的每个小面上,为缺省选项。
gouraud:
先对顶点颜色插值,再对由顶点勾画的面插值,选项用于曲面的表现。
phong:
对顶点处法线插值,再计算各像素点的反光,效果好,但占机时多。
(3)材料反射系数material
materialoptions:
shiny:
有光泽、明亮,镜反射份额较大。
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]=cylinder(r,60);
%产生旋转柱数据
ii=find(x<
0&
y<
0);
%确定x-y平面第四象限上的数据下标
z(ii)=NaN;
%剪切
colormap(pink)
shadinginterp
%表面色彩渲染
light('
position'
[-3,-1,3],'
style'
'
local'
)
%设置光源
material([0.5,0.4,0.3,10,0.3])
%设置表面发射
LINSPACELinearlyspacedvector.
LINSPACE(x1,x2)generatesarowvectorof100linearly
equallyspacedpointsbetweenx1andx2.
LINSPACE(x1,x2,N)generatesNpointsbetweenx1andx2.
显示效果增强后的二元函数表面图及光照。
.1:
r=sqrt(x.^2+y.^2)+eps;
z=2*sin(r)./r;
shadinginterp;
daspect([551])
%设置坐标轴数据的纵横比
axistight
view(-50,30)
[-10,-10,21])
(DASPECTDataaspectratio.
DAR=DASPECT
getsthedataaspectratioofthecurrentaxes.
DASPECT([XYZ])
setsthedataaspectratio.
DARMODE=DASPECT('
mode'
)getsthedataaspectratiomode.
DASPECT(mode)setsthedataaspectratiomode.
(modecanbe'
auto'
or'
manual'
DASPECT(AX,...)usesaxesAXinsteadofcurrentaxes.
DASPECTsetsorgetstheDataAspectRatioorDataAspectRatioMode
propertyofanaxes.)
绘制双光照效果的球。
sphere(36);
%创建球面的函数sphere(n),球面小刻面数为(n+1×
n+1)
axisequal
[132]);
[-3-13]);
materialshiny
axisoff
%消隐坐标轴
3.图象(Image)
三大类图象:
(Threekindofimages)
*索引图:
由一个图象矩阵(X)和一个色图矩阵(MAP)组成,调用格式:
[x,map]=imread(‘filename’);
*灰度图:
由一个图象矩阵(X)和一个色图矩阵(MAP)组成,其色图为单色的灰度色图。
调用格式:
x=imread(‘filename’);
*真彩色图:
由一个三维图象数据组组成,第三维为RGB三原色数据,没有色图矩阵。
图象操作
[x,map]=imread('
lily.tif'
%读取图象文件
image(x);
%显示图象
colormap(map)
%色彩映射
axisimageoff
4.图形的输出(Outputfigures)
(1)
图形打印(rintingfihures)
(a)从图形窗口的File菜单中选择Print选项,弹出Windows打印对话框;
(b)打印命令:
print-device-options
x=0:
pi/100:
2*pi;
plot(x,sin(x))
%将图形打印在默认打印机上
(2)
图象存储(Savingfigures)
(a)利用print命令将图形输出到文件,格式为:
print--device–optionsfilename
如print(h,’-djpeg’,’a01’,’-r100’)%建立100pi的图形文件a01.jpg
(b)生成图象文件:
图形窗口中显示的任何图形都可以通过getfram命令得到相应的位图数据,然后用imwrite命令存储为其他格式的图象文件。
如:
x=imread('
flowers.tif'
image(x)
f=getframe;
%f是一个结构函数
imwrite(f.cdata,'
flowers.jpg'
或用:
[x,map]=frame2in(f)
5.3以前版本用capture命令捕捉当前图形。
六.图形对象与句柄(Figureobjectandhandle)
1.图形对象概述(Introductionoffigureobject)
图形对象(Figureobject):
可以确定图形的整体或部分属性的各层界面。
各层次图形对象是相互关联的,低层次的对象必须建立在它所在层次之上各层对象完备的基础上。
2.图形对象的类型(Typeoffigureobject)
(1)根屏幕(rootscreen):
在层次的最顶层是根对象,相当于计算机屏幕,根对象只有一个,根对象不能被建立,但可以设置根属性以控制图形的显示。
(2)图形窗口(figurewindow):
独立于根屏幕的显示图形窗口,是根对象的子对象,而所有其他图形对象都是图形窗口的子孙。
所有的绘图函数(如plot和surf等)都会自动建立一个图形窗口。
(3)轴(axis):
轴对象在图形窗口中定义一个区域,并确定该区域中子对象的方向,轴是图形窗口的子对象,又是图象、灯光、线、块、表面和文字的父对象。
(4)控件(Uicontrol):
用于接口控制的按钮、列表框、滑条等,可以联合使用构成控制面板和对话框。
(5)菜单(Uimenu):
下拉菜单,当用户选择一个独立的菜单项时执行回调程序。
(3)
对象菜单(Uicontextmenu):
用鼠标右键点击某一个图形对象时弹出对象菜单,它必须与某一个图形对象联合使用。
(4)
图象Image由数据矩阵和色图矩阵组成的图象,有三种:
索引图、强度图、真彩色图。
(5)
灯光Light灯光对象定义光源。
(6)
线
Line线对象时大多数二维和三维绘图的基础。
(7)
块Patch
块对象时带有边界、被填充的多边形。
(8)
矩形Rectangle矩形对象时二维填充区域,形状可以从矩形到椭圆。
(9)
表面Surface表面对象是矩阵数据的三维表现。
(10)
文字Text文字对象是字符串。
3.句柄图形(Handlefigures):
图形对象的句柄是MATLAB显示图形数据和建立图形用户接口的基础,每个对象从产生时起就被赋予了一个唯一的标识,这种标识就是该对象的句柄。
利用句柄就可以操纵一个已经存在的图形对象的特性(属性)。
Set和get函数用于设置和获取指定句柄对象的属性值。
可以为对象设置句柄名称,如果没有设置句柄,可用gcf命令获得当前图形窗口的句柄,使用gca命令获得当前坐标轴的句柄,使用gco命令获得当前对象的句柄。
自定义坐标轴的显示刻度
(a)
绘制正弦曲线。
t=-pi:
pi;
y=sin(t);
plot(t,y)
执行的结果轴的刻度值和间隔都是自动定义的数值轴。
(b)可以通过set函数对坐标轴对象进行定义,获得在x轴上设置角度刻度的效果:
set(gca,'
xtick'
[-pi:
pi/2:
pi],'
xticklabel'
{'
-pi'
-pi/2'
0'
pi/2'
pi'
})
(c)如在定义轴范围同时绘制网格线会使图形更加清除。
axis([-pi,pi,-1,1])
grid
(d)坐标轴的刻度的属性值还可写成:
set(gca,'
XtickLabel'
-pi|-pi/2|0|pi/2|pi'
axis([-pi,pi,-1,1])
如果是数字也可以写成:
set(gca,Xticklabel’,[1;
5;
10;
20])
Xticklabel'
[1;
axis([-pi,pi,-1,1])
在图形的上层显示网格
建立句柄h为的三维曲面:
h=surf(sphere(30))
%缺省状态下曲面的网线是黑色的
set(h,'
EdgeColor'
[0.8,0.8,0.8])%将网线设置为浅灰色
g'
)
%将网线设置为绿色
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 图形 处理 功能