?当x 是长度为n的数值向量且y是n?m的数值矩阵时,plot(x,y)用向量x分别与矩阵y的每一列匹配, 在同一坐标系中绘出m条不同颜色的折线图; ?当x 和y都是n?m的数值矩阵时,plot(x,y)分别用矩阵x的第i列与矩阵y的第i列匹配,在同一坐标系中绘出m条不同颜色的折线图。
注: plot(x,y)命令可以用来画通常的函数f(x)图形, 此时向量x常用命令x=a:h:b的形式获得f(x)函数在绘图区间[a,b]上的自变量点向量数据,对应的函数向量值取为y= f(x)。步长h可以任意选取,一般,步长越小,曲线越光滑,但是步长太小,会增加计算量,运算速度要降低。通常步长h取为0.1可以达到较好的绘图效果。如果想在图形中标出网格线,用命令:plot(x,y),grid on即可。
例22:画出函数y = sin x2 在-5 ? x ? 5 的图形。 解: x=-5:.1:5;↙ %取绘图横坐标向量点x
y=sin(x.^2); ↙
plot(x,y), grid on↙
x2y2?2?122例23:画出椭圆5的曲线图。
?x?5cost?解: 对于这种情形,首先把它写成参数方程 ?y?2sintt=0:pi/50:2*pi; ↙ x=5*cos(t); ↙ y=2*sin(t); ↙ plot(x,y) ,grid on
(0?t?2?)。
3. plot(x1,y1,x2,y2,x3,y3?)
功能:在同一图形窗口画出多条不同颜色曲线,曲线关系为: y1?f(x1),y2?f(x2),y3?f(x3),?.。
例24:在同一图形窗口画出三个函数y = cos 2x ,y = x 2 ,y = x的图形。 解: x=-2:.1:2; ↙
plot(x,cos(2*x),x,x.^2,x,x) ↙ legend('cos(2x)','x^2','x') ↙
4.ezplot(F,[xmin,xmax])
功能: 画出符号函数F在区间[xmin,xmax]内的图像
说明: F是只含有一个变量的函数。如果区间[xmin,xmax]缺省,默认区间为
[-2pi,2pi]
2?3y?e2cost32在[0,4*pi]间的图形。 例25:绘制
t解 ezplot('2/3*exp(-t/2)*cos(3/2*t)',[0,4*pi]) ↙
5.二维特殊图形
除了plot指令外,Matlab还提供了许多其它的二维绘图指令,这些指令大大扩充了Matlab的曲线作图指令,可以满足用户的不同需要。
表2.4绘制二维图形的指令
函数名称 bar barh bar3 bar3h hist pie pie3 fplot ezplot gplot fill
例26:练习指令bar,stairs,pie,pie3,stem,area.
功能 直方图 垂直的直方图 三维直方图 垂直的三维直方图 统计直方图 饼图 三维饼图 数值函数二维曲线 符号函数二维曲线 绘拓扑图 平面多边形填色 函数名称 loglog semilogx semilogy polar stairs stem pcolor area errorbar quiver ribbon 功能 双对数曲线 x轴对数坐标曲线 y轴对数坐标曲线 极坐标曲线 阶梯图 火柴棍图 伪彩图 面积图 误差棒棒图 矢量场图 代状图 解: x=1:5;
subplot(2,3,1),bar(x),title('直方图')↙ subplot(2,3,2),stairs(x),title('阶梯图')↙ subplot(2,3,3),stem(x,'rp'),title('火柴棍图')↙ subplot(2,3,4),pie(x),title('饼图')↙ subplot(2,3,5),pie3(x),title('三维饼图')↙ subplot(2,3,6),area(x),title('面积图')↙
6.三维网格命令mesh
由函数meshgrid生成格点矩阵后,就可以求出各格点对应的函数值,然后利用三维网格命令mesh与三维表面命令surf画出空间曲面。函数mesh用来生成函数的网格曲面。函数mesh 有如下三种形式:
mesh(X,Y,Z) X,Y,Z是同维数的矩阵 mesh(x,y,Z) x,y是向量,而Z是矩阵。
(x,y)?[X,Y]?meshgrid?mesh(X,Y,Z)等价于?
mesh(Z) 若提供参数x,y,等价于mesh(x,y,Z),
否则默认x=1:n,y=1:m,其中Zm?n
22例27:画出函数z?sin(x?siny)在-3 ? x ,y? 3及z?x?2y在-10 ? x,y ? 10
上的图形。
解: (1)建立命令文件me.m
%函数 z=sin(x+siny) t1=-3:.1:3;
[x1,y1]=meshgrid(t1); %生成格点矩阵 z1=sin(x1+sin(y1)); %计算格点处的函数值 subplot(1,2,1),mesh(x1,y1,z1),title('sin(x+siny)') %马鞍面z=x^2-2y^2 t2=-10:.3:10;
[x2,y2]=meshgrid(t2);z2=x2.^2-2*y2.^2;
subplot(1,2,2),mesh(x2,y2,z2),title('马鞍面') (2)执行命令文件me.m
数学实验课程公共邮箱 帐号:publicmatlab@163.com 密码:matlab
实验2 图像轮廓线提取技术
一、 实验目的与要求:
1、 能熟练应用matlab去分析问题、解决问题;
2、 熟悉对matlab的图像处理的功能,掌握基本的图像处理的若干命令; 3、 在应用matlab进行图像处理方面具备一定的编程能力。
4、 掌握figure,imread,image,colormap,imshow,imwrite,subplot,title,
rgb2gray,imfinfo等语句的基本使用方法。
5、 掌握图像轮廓线提取的简单方法并上机实现。
6、 掌握matlab自带的一些常用边界检测算子的使用,提高对复杂图像处理的能
力。 二、 问题描述
“图像轮廓线提取”是数字图像处理中对图像进行处理和分析之前的一项非常重要的工作。指的是从原始图像中,以手动或自动的方法,将图片中的人物、动物、植物或者其他任何对象的(特征)轮廓线提取出来,使之成为一幅独立的黑白线条图。从而达到将物体与背景分开,物体与物体分开的效果。提取轮廓线被应用于许多方面,例如人脸检测和跟踪。它结合了认知科学、图象处理、计算机图形学、机器视觉和模式识别等多个研究领域。 三、 问题分析
既然“图像轮廓线提取”的黑白线条图所在位置往往是图像中两区域交界位
置,则可以通过图像特征(如形状、颜色、纹理等)变化情况来检测两区域交界处。最简单的方法就是采用阈值检测法,即将当前检测点的特征与周围点的特征进行比较,若发现有较大的差异,则认为当前检测点属于两区域的交界点,否则,认为同一区域内的点。 四、 背景知识介绍
首先介绍几种基本的图像格式,再介绍一下matlab中常见的图像处理命令及其用法。 ? 常见图像格式
1. 二值图
单色图像则是带有颜色的图像中比较简单的格式,它一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,“1”表示黑色,“0”表示白色,当然也可以倒过来表示,这种图像称之为二值图像。 2. 灰度图
我们也可以用8个比特(一个字节)表示一个像素,相当于把黑和白等分为256个级别,“0”表示为黑,“255”表示为白,该字节的数值表示相应像素值的灰度值或亮度值,数值越接近“0”,对应像素点越黑,相反,则对应像素点越白,此种图像我们一般称之为灰度图像。单色图像和灰度图像又统称为黑白图像。 3. 彩色图
与黑白图像对应,就存在着彩色图像,这种图像要复杂一些,表示图像时,常用的图像彩色模式有RGB模式、CMYK模式和HIS模式,一般情况下我们只使用RGB模式,R对应红色,G对应绿色,B对应蓝色,它们统称为三基色,这三中色彩的不同搭配,就可以搭配成各种现实中的色彩,此时彩色图像的每一个像素都需要3个样本组成的一组数据表示,其中每个样本用于表示该像素的一个基本颜色。基于三刺激理论(Tristimulus Theory),我们的眼睛通过三种可见光对视网膜的锥状细胞的刺激来感受颜色。这些光的波长为630nm(红色)、530nm(绿色)和450nm(蓝色)时的刺激达到高峰。通过光源中的强度比较,我们感受到光的颜色。这种视觉理论是使用三种颜色基色:红、绿和蓝在视频监视器上显示彩色的基础,称为RGB颜色模型。以一个常见的例子来说明:Windows环境下主要的图像格式之一,BMP灰度图像,以其格式简单,适应性强而倍受欢迎。这种文件格式就是每一个像素用8bit表示,显示出来的图像是黑白效果,最黑的像素的灰度(也叫作亮度)值为“0”,最白的像素的灰度值为“255”,整个图像各个像素的灰度值随机的分布在“0”到“255”的区间中,越黑的像素,其灰度值越接近于“0”,越白(既越亮)的像素,其灰度值越接近于“255”;与此对应的是在该文件类型中的颜色表项的各个RGB分量值是相等的,并且颜色表项的数目是256个。每一个像素颜色由其红、绿、蓝三色的强度值联合决定。 4. 常见的颜色值如下: 颜色 红 绿 蓝 黄 紫 青 白 黑 灰 红 R 255 0 0 255 255 0 255 0 128 绿 G 0 255 0 255 0 255 255 0 128 蓝 B 0 0 255 0 255 255 255 0 128