MATLAB二维图形及其应用

MATLAB二维图形及其应用
MATLAB二维图形及其应用

MATLAB绘制二维、三维图形

例2-1在子图形窗口中画出上正弦、余弦曲线。

x=0:0.1*pi:2*pi;%按步长赋值生成x向量

y=sin(x); z=cos(x);%生成正弦、余弦函数值y、z向量

subplot(2,1,1)%分图形窗口为2行1列,并在第一个子窗中绘图

plot(x,y,x,z)%在第一个子窗中画出正弦、余弦曲线

subplot(2,1,2)%在第二个子窗中绘图

plot(x,y,'k:',x,z,'r-')%在第二个子窗中用不同颜色画两条曲线

hold on%保持第二个子窗中绘图

plot(x,y,'bo',x,z,'k+')%用'o'和'+'标记曲线上分点

hold off%取消图形保持

例2-2画出上正弦、余弦曲线并对线型加粗、点型加大,重新定置坐标系以及加注相说明和注释。

x=0:0.1*pi:2*pi;%按步长赋值生成x向量

y=sin(x); %生成正弦、余弦函数值y、z向量

z=cos(x);

plot(x,y, 'b-', x,z, 'k .-','linewidth',3, 'markersize',15)

axis([-0.2*pi 2*pi -1.2 1.2])%重新设置图形窗口坐标轴范围

grid%加注坐标网格

xlabel('Variable \it{x}')%标记横坐标轴, \it{x}表示x为斜体

ylabel('Variable \it{y}')%标记纵坐标轴

title('Sine and Cosine Cruves')%标记图名

text(2.5,0.7,'Sin(x)')%在(2.5,0.7)位置,标记曲线名称

text(1.5,0.1,'Cos(x)')%在(1.5,0.1)位置,标记曲线名称

hold on%图形保持,在同一图形窗口中叠加图形

plot([0,2*pi],[0,0], 'r-.')%叠加一条红色的点划直线 0,0)到(2pi,0)

hold off%图形保持取消,再画图时将另辟窗口

例2-3分别在两个图形窗口画出填充一正方形和极坐标方程的图形。

h1=figure;%打开第一个图形窗口,返回其图标识号(句柄)h1

x=[0 1 1 0 0];%闭合图形的顶点横坐标向量

y=[0 0 1 1 0];%闭合图形的顶点纵坐标向量

fill(x,y,'y') %填充闭合图形(用黄颜色)

axis([-1 2 -1 2]) %重新设置坐标轴

h2=figure;%打开第二个图形窗口,返回其图标识号(句柄)h2

theta=linspace(0,2*pi);%对theta角的范围进行划分,生成分点向量

rho=sin(2*theta).*cos(2*theta);%生成相应极坐标方程的极径rho向量

polar(theta,rho,'r')%绘制相应的极坐标方程图形(用红颜色)

title('Polar plot of sin(2*theta)cos(2*theta)')%添加图形标题

set(h2,'linewidth',3)%对第二个窗口中曲线加粗

例2-4在[-2.5,2.5]上画出函数的直方图和阶梯图。

x=linspace(-2.5,2.5,20);%产生横坐标x向量

y=exp(-x.*x);%生成函数值向量

h1=subplot(1,2,1);%分图形窗口并在第一个子窗中绘图,返回其句柄h1 bar(x,y) %画出直方图

title(' Bar Chart of a Bell Curve ')%添加图形标题

h2= subplot(1,2,2);%在第二个子窗中绘图,返回其句柄h2

stairs(x,y) %画出阶梯图

title('Stairs Plot of a Bell Curve ')%添加图形标题

例2-5采用不同形式(直角坐标、参数、极坐标),画出单位圆的图形。(1)直角坐标系

x=-1:0.01:1; %对x的范围进行划分,生成分点向量

y1=sqrt(1-x.^2);%生成上半单位圆的函数值向量

y2=-y1;%生成下半单位圆的函数值向量

plot(x,y1,x,y2);%同时画出上半圆和下半圆

axis equal%让坐标系中两个坐标轴取值相同

(2)参数方程

t=0:0.01*pi:2*pi;%对t的范围进行划分,生成分点向量

x=cos(t); y=sin(t);%生成单位圆上的函数值向量

plot(x,y);%画出单位圆

axis equal%让坐标系中两个坐标轴取值相同

(3)极坐标系

t=0:0.01*pi:2*pi;%对t的范围进行划分,生成分点向量

r=1+0*t;%生成单位圆的极径r向量

polar(t,r)%绘制相应的极坐标方程图形

例2-6画出螺旋线:x=sin(t),y=cos(t),z=t,上一段曲线。

t=0:pi/50:10*pi;%生成参数t数组

X=sin(t);%生成螺旋线X数组

Y=cos(t);%生成螺旋线Y数组

Z=t;%生成螺旋线Z数组

plot3(X,Y,Z, 'k-', 'linewidth',3) %画螺旋线

grid

例2-7画出矩形域[-1,1] ×[-1,1]上旋转抛物面:

x=linspace(-1,1,100);%分割[-1,1]区间生成x

y=x;%y与x相同

[X,Y]=meshgrid(x,y); %生成矩形域[-1,1]×[-1,1]网格节点坐标矩阵Z=X.^2+Y.^2;%生成函数值矩阵

subplot(1,2,1)

mesh(X,Y,Z) ;%在第一个子图中画网格曲面

subplot(1,2,2)

surf(X,Y,Z) ;%在第二个子图中画光滑曲面

shading flat ;%对曲面平滑并除去网格

例2-8在圆形域上绘制旋转抛物面:。

x=linspace(-1,1,300);%分割[-1,1]区间生成x

y=x;%生成y

[X,Y]=meshgrid(x,y); %生成矩形域[-1,1]X[-1,1]网格节点坐标矩阵Z=X.^2+Y.^2;%生成函数值矩阵

i=find(Z>1);%找出圆域之外的函数值(z>1)坐标点i

Z(i)=NaN;%对圆域之外的坐标点i处函数值进行“赋空”

subplot(1,2,1)

mesh(X,Y,Z) ;%在第一个子图中画网格曲面

subplot(1,2,2)

surf(X,Y,Z) ;%在第二个子图中画光滑曲面

shading flat ;%对曲面平滑并除去网格

例2-9画出在上的图形。

x=-7.5:0.5:7.5;

y=x;

[X,Y]=meshgrid(x,y);

u=sqrt(X.^2+Y.^2)+eps;%加eps使得u不等于0,保证z有意义

Z=sin(u)./u;

surf(X,Y,Z)

实验3MATLAB编程介绍与循环结构

例3-1:求n(n=100)个奇数的和:s=1+3+5+…+(2n-1).

clear;clc;%清除内存变量,清理命令窗口

n=100;%赋值给定奇数的个数

s=0;%设定存放和的变量s并赋初值0

for i=1:n%定义循环变量i从1到n,以1为步长,即为奇数序号

s=s+(2*i-1);%先计算右端奇数并累加后再赋给左端的变量s

fprintf('i=%.0f, s=%.0f\n',i,s)%逐行显示出累加求和的过程

end%循环结构结束

例3-2:求正整数n的阶乘:p=1×2 × 3 × … × n = n!,并求出n=20时的结果。clear;clc;

%清除内存变量,清理命令窗口

n=20;%赋值给定正整数

p=1;%设定存放阶乘的变量p并赋初值1

for i=1:n%定义循环变量i从1到n,以1为步长,即连续正整数

p=p*i;%先计算右端乘积后再赋给左端的变量p

fprintf('i=%.0f, p=%.0f\n',i,p)%逐行显示出i!

end%循环结构结束

例3-3:根据麦克劳林公式可以得到e≈1+1+1/2!+1/3!+…+1/n!,试求e的近似值。clear;clc;%清除内存变量,清理命令窗口

n=10;

%赋值给定正整数

p=1;%设定存放阶乘的变量p并赋初值1

s=1;%设定存放累加和的变量s并赋初值1

for i=1:n%定义循环变量i从1到n,以1为步长

p=p*i;%先计算右端乘积后再赋给左端的变量p,此时p为i的阶乘

s=s+1/p;

%先计算右端阶乘倒数的累加后再赋给左端的变量s

fprintf('i=%.0f, s=%.8f\n',i,s)%逐行显示出第i次e的近似值

end%循环结构结束

例3-4:对于数列,求其前n项和不超过1000时的n的值及和.

clear;clc;%清除内存变量,清理命令窗口

n=0;%设定正整数并赋初值0

s=0;%设定存放累加和的变量s并赋初值0

while s<=1000%用累加和s与1000进行比较作为循环条件

n=n+1;%改变n为连续正整数

s=s+sqrt(n);%先计算右端开方数的累加后再赋给左端的变量s

fprintf('n=%.0f, s=%.4f\n',n,s)%逐行显示正整数及部分和

end%循环结构结束

例3-5:根据e≈1+1+1/2!+1/3!+…+1/n! 求e的近似值,要求精确到。

clear;clc;%清除内存变量,清理命令窗口

p=1;%设定存放阶乘的变量p并赋初值1

s=1;%设定存放累加和的变量s并赋初值1

r=1;%设定前后两次近似值的误差r并赋初值1

k=0;%设定构造连续正整数的变量k赋初值0又为循环次数

while r>=1.0e-8%当近似值的精度r没达到时继续循环

k=k+1;%累计循环次数并作为下一个正整数k

p=p*k;%计算k的阶乘p

r=1/p;%计算前后两次近似值的误差r

s=s+r;

%计算e的近似值s

fprintf('k=%.0f, s=%.10f\n',k,s)%逐行显示出第k次e的近似值s

end%循环结构结束

实验4 MATLAB选择结构与应用实验

例4-1:求任意有限数组a=[a(1),a(2),…,a(n)]中数值最大的元素M以及所在位置k.

Function [M,k]=findM(a)

定义函数findM,输入数组a,返回最大元素M及位置k

n=length(a);%获取数组的长度即元素的个数n

M=a(1); k=1;%将第一个元素作为最大值赋值给M,位置为1;

for i=2:n%从第二个元素到最后一个元素依次进行

if a(i)>M

%比较后续元素与目前最大值M的大小

M=a(i); k=i;%将数值较大的元素赋值给M,同时保留位置i

end%选择结构结束

end %循环结构结束

a=[1,2.2,pi,-0.8,3.2,0];任意给定一数组

[M,k]=findM(a)%调用函数findM

例4-2:编写一个函数将百分制成绩转换为优(A),良(B),中(C),差(D)四等级. Function jb=dengji(fs)

%定义函数dengji,输入分数fs,返回等级A,B,C,D

if fs>=90%判断分数fs是否处在优秀级别上

jb=' A ';%定义为A级

elseif fs>=78%判断分数fs是否处在良好级别上

jb=' B ';%定义为B级

elseif fs>=60%判断分数fs是否处在合格级别上

jb=' C ';%定义为C级

else%分数fs不处于以上任何级别上

jb=' D ';%定义为D级

end %选择结构结束

例4-3:Fibonacci数组的元素满足Fibonacci规则:求出该数组中第一个大于10000的元素。

n=100;%给定一个较大的n作为数列的位置

a=[1,1]; %设定数列的初始值

for i=3:n%从第3个元素开始循环递推生成后续元素

p=a(i-1)+a(i-2); %前两个元素之和生成后续元素p

a=[a,p];%将刚产生的元素p放置到数组a的最后,拼接成新的数组

if p>10000%判断将刚产生的元素p是否超过10000

break; %跳出所在的for循环

end%选择结构结束

end%环结构结束

disp([a])%显示所生成的数列,最后一个元素a(length(a))为所求的元素

例4-4:动态显示数列极限的逼近过程。

clear;clf;%清除内存变量,清理图形窗口

hold on%开启图形保持功能以便重复画点

axis([0,150,2,2.8]);%设置坐标窗口

grid%画出坐标网格

for n=2:2:150%让n从2开始,建立循环

an=(1+1/n)^n;%计算数列的值

plot(n,an,'r.','markersize',15);%画出相应的坐标点,点的大小为15

pause(0.1);%暂停0.1秒后开始下一循环

fprintf('n=%d an=%.4f\n',n,an);%显示出每次结算结果(在命令窗口中)

end%循环结构结束

问题1:对于数列, >0为常数,可以证明该数列收敛,且。显然,这个结论提供了一个求平方根的近似方法,试编制一个函数程序,对任意给定的正实数A,求出的近似值(精确到)。

function [a1,k]=jixian(A)

%定义函数jixian,输入常数A,返回极限近似值和迭代次数

if A<=0%如果A不为正,则显示错误信息且a1=-1,k=-1并终止程序

disp('data error!');

a1=-1;k=-1;

return%终止程序返回调用处

end

a0=1; k=0;%给定数列的初始值a0和累计循环的变量k

r=1; %设定存放相邻两次迭代值差的绝对值,赋初值1

while r>=1.0e-5%当误差没达到时继续循环

k=k+1;%循环次数累加一次

a1=(a0+A/a0)/2; %计算下一个元素a1

r=abs(a1-a0);%计算前后两次迭代值差的绝对值,存放在r中

a0=a1;%将a1赋给a0作为新的初值,迭代下一个元素

fprintf('k=%.0f a1=%.8f\n',k,a1)%显示每次迭代结果

end%循环结构结束

问题2:对于任意一个正整数,都可以判断其是质数还是合数,这一点在一些有关数论问题中是经常用到的。但当一个正的奇数比较大时,手工来判断是否为质数往往不很容易。现在要求编制一个函数程序,对任意一个正整数,判断出它是质数还是合数,若是质数,则返回值1;若是合数,返回值0,同时给出两个因数;若输入非正数,则返回值-1,并提示错误。

function k=hezhishu(M)

%定义函数hezhishu,输入正整数M,返回合质数的标志k

k=1; %赋数k初值为1,默认为质数

if M<=1

disp(' data error!');

k=-1;%输入的数非合质数时,输出错误信息

return%程序终止,返回

end

if M>=4%输入的数M从4开始,2,3为质数

for m=2: fix(sqrt(M))%从2到开始循环

if mod(M,m)==0%M被m整除,即M为合数

k=0;%赋数k为0,表示M为合数

fprintf('%.0f=%.0f×%.0f\n',M,m,M/m)%显示M=m×n

break%循环终止

end

end

end

问题3:设某一建筑公司要筹建一批A、B、C三种类型的楼房,已知每栋楼房的投资和售价分别为:A类投资90万,售价115万;B类投资110万,售价150万;C类投资170万,售价205万。现在该公司有资金1250万,要求每类楼房至少建一栋,最多不超过5栋,那么如何设计建楼方案,在资金充分利用的前提下能获得最大利润?

clear;clc;

t=[90,110,170]; %楼房的投资单价向量

p=[115,150,205]; %楼房的售价向量

z=1250;%总资本

r=p-t;%楼房的利润向量

D=[];k=0;%D为存放方案及利润的结果矩阵,k为行标

for a=1:5 % a为A类楼房的数量

for b=1:5 % b为B类楼房的数量

for c=1:5 % c为C类楼房的数量

f=[a,b,c];% f为建楼方案即各类楼房数量向量

if f * t'<=z% 计算f方案投资额度,如果投资允许,方案有效

zr=f * r';% 计算f方案的利润

k=k+1; %结果矩阵的行数加1

D(k,:) =[f , zr];%方案及利润的结果存放矩阵D的k行

end

end

end

end

[R, I]=max(D( : ,4));%求出矩阵D第4列(利润)中最大值所在的行I

disp([D(I, : )])%显示出矩阵D的第I行,前三列即为建楼最优方案

问题4:设 (0,0)为一导弹发射点,发现位于B(0,100)处一架敌机沿水平方向逃离(如图),随即发射一枚导弹予以打击,现已知导弹时刻对准敌机,且速率为飞机速率的两倍(设飞机速度为1)。试编程模拟导弹打击敌机的动态过程,并实时给出飞机和导弹的位置坐标。如果敌机飞行60单位距离之外即逃出我方空域,那么,要想在我方空域内击落敌机,则导弹的速度至少应提高到敌机速度的多少倍?

clear;clc;clf;

hold on

axis([0 100 0 120]);

grid

A=[0,0]; %标记导弹的初始位置

B=[0,100]; %标记敌机的初始位置

d=norm(A-B);%计算两者之间的距离

k=0;% k为循环统计量,即为迭代的次数

v=1;dt=1;K=2; %给定飞机速度v、时间间隔dt、速度关系系数K的值

while k<10000 %开始循环,次数不超过10000

k=k+1; %循环次数累加1

B=B+[v*dt,0];%计算敌机位置

plot(A(1),A(2),'r.' ,'markersize',15); %标记导弹位置

plot(B(1),B(2),'b.' ,'markersize',15);%标记敌机位置

e=B-A;d=norm(e);%计算两者之间的距离

fprintf('k=%.0fB(%.0f,100)A(%.2f,%.2f)d=%.2f\n',k,B(1),A(1),A(2),d) if d<=0.5 %如果飞机与导弹距离很小,可认为击中目标

break

%终止循环

end

e=e/d;%计算导弹飞行方向向量

A=A+K*v*dt*e;%计算导弹位置

pause(0.2)

%暂停0.2秒,放慢画图演示过程

end

非常全非常详细的MATLAB数字图像处理技术

MATLAB数字图像处理 1 概述 BW=dither(I)灰度转成二值图; X=dither(RGB,map)RGB转成灰度图,用户需要提供一个Colormap; [X,map]=gray2ind(I,n)灰度到索引; [X,map]=gray2ind(BW,n)二值图到索引,map可由gray(n)产生。灰度图n默认64,二值图默认2; X=graylice(I,n)灰度图到索引图,门限1/n,2/n,…,(n-1)/n,X=graylice(I,v)给定门限向量v; BW=im2bw(I,level)灰度图I到二值图; BW=im2bw(X,map,level)索引图X到二值图;level是阈值门限,超过像素为1,其余置0,level在[0,1]之间。 BW=im2bw(RGB,level)RGB到二值图; I=ind2gray(X,map)索引图到灰度图; RGB=ind2rgb(X,map)索引图到RGB; I=rgb2gray(RGB)RGB到灰度图。 2 图像运算 2.1 图像的读写 MATLAB支持的图像格式有bmp,gif,ico,jpg,png,cur,pcx,xwd和tif。 读取(imread): [1] A=imread(filename,fmt) [2] [X,map]=imread(filename,fmt) [3] […]=imread(filename) [4] […]=imread(URL,…) 说明:filename是图像文件名,如果不在搜索路径下应是图像的全路径,fmt是图像文件扩展名字符串。前者可读入二值图、灰度图、彩图(主要是RGB);第二个读入索引图,map 为索引图对应的Colormap,即其相关联的颜色映射表,若不是索引图则map为空。URL表示引自Internet URL中的图像。 写入(imwrite): [1] R=imwrite(A,filename,fmt); [2] R=imwrite(X,map,filename,fmt); [3] R=imwrite(…,filename); [4] R=imwrite(…,Param1,V al1,Param2,Val2) 说明:针对第四个,该语句用于指定HDF,JPEG,PBM,PGM,PNG,PPM,TIFF等类型输出文件的不同参数。例如HDF的Quality,Compression,WriteMode;JPEG的BitDepth,Comment:Empty or not,Mode:lossy or lossless,Quality等。 2.2 图像的显示 方法1:使用Image Viewer(图像浏览器),即运用imview函数。 同时显示多帧图像的所有帧,可用到montage函数。

利用MATLAB绘制二维函数图形

《MATLAB语言》课程论文 利用MATLAB绘制二维函数图形 姓名:海燕 学号:12010245375 专业:通信工程 班级:通信一班 指导老师:汤全武 学院:物理电气信息学院 成日期:2011年12月5 利用MATLAB绘制二维函数图形 (海燕 12010245375 2010级通信1班) [摘要]大学高等数学中涉及许多复杂的函数求导绘图极值及其应用的问题,例如二维绘图,对其手工

绘图因为根据函数的表达式的难易程度而不易绘制,而MATLAB语言正是处理这类的很好工具,既能简易的写出表达式,又能绘制有关曲线,非常方便实用。另外,利用其可减少工作量,节约时间,加深理解,同样可以培养应用能力。本文将探讨利用matlab来解决高等数学中的二维图形问题,并对其中的初等函数、极坐标、进行实例分析,对于这些很难用手工绘制的图形,利用matlab则很轻易地解决。[关键词]高等数学一元函数二元函数 MATLAB语言图形绘制 一、问题的提出 MATLAB 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。中学数学中常见到的是二维平面图形,由于概念抽象,学生不好理解,致使学生对学习失去信心,导致学习兴趣转移。在传统的教学中,教师在黑板上应用教具做图,不能保证所做图形的准确性,曲线的光滑度不理想,教学过程显得枯燥无味,教学质量难以保证。Matlab是集数值计算、符号计算和图形可视化三大基本功能于一体的大型软件,广泛应用于科学研究、工程计算、动态仿真等领域。Matlab是一种集成了计算功能、符号运算、数据可视化等强大功能的数学工具软件。其代码的编写过程与数学推导过程的格式很接近,所以使编程更为直观和方便,应用于教学就更加容实现Matlab软件尤 其在简单的绘图中有较强的编辑图形界面功能,在中学的数学教学中的抽象函数变得直观 形象、容易实现,同时也激发学生的学习兴趣,学生通过数形结合,更好地理解题意高等数学是一门十分抽象的学科,对于一些抽象的函数,我们可以借助于几何图形来理解,但这类图形的绘制往往很复杂,仅凭手工绘制也难以达到精确的效果,这时如果使用Matlab来解决所遇到的图形问题,则能达到事半功倍的效果。在高等数学领域中有关图形方面的应用,无论是初等函数图形、还是极坐标图形、统计图,对于Matlab而言都是完全可以胜任的。 下面结合实例从几个方面来阐述matlab在高等数学二维图形中的应用。 二、用matlab绘制一元函数图像 1.平面曲线的表示形式 对于平面曲线,常见的有三种表示形式,即以直角坐标方程 ] , [ ), (b a x x f y∈ =,以参数方程 ] , [ ), ( ), (b a t t y y t x x∈ = =,和以极坐标] , [ ), (b a r r∈ =? ?表示等三种形式。 2.曲线绘图的MATLAB命令 MATLAB中主要用plot,fplot二种命令绘制不同的曲线。 可以用help plot, help fplot查阅有关这些命令的详细信息 问题1 作出函数 x y x y cos , sin= =的图形,并观测它们的周期性。先作函数x y sin =在

5 MATLAB图形功能

§5MATLAB图形功能 MA TLAB有很强的图形功能,可以方便地实现数据的视觉化。强大的计算功能与图形功能相结合为MA TLAB在科学技术和教学方面的应用提供了更加广阔的天地。下面着重介绍二维图形的画法,对三维图形只作简单叙述。 5.1 二维图形的绘制 5.1.1 基本形式 二维图形的绘制是MA TLAB语言图形处理的基础,MA TLAB最常用的画二维图形的命令是plot,看两个简单的例子: >> y=[0 0.58 0.70 0.95 0.83 0.25]; >> plot(y) 生成的图形见图5-1,是以序号6, ,2,1 为横坐标、数组y的数值为纵坐标画出的折线。 >> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y) 生成的图形见图5-2,是] 2,0[ 上30个点连成的光滑的正弦曲线。 图5-1 图5-2 5.1.2 多重线 在同一个画面上可以画许多条曲线,只需多给出几个数组,例如 >> x=0:pi/15:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 则可以画出图5-3。多重线的另一种画法是利用hold命令。在已经画好的图形上,若设置hold on,MA TLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如: >> x=linspace(0,2*pi,30); y=sin(x); plot(x,y) 先画好图5-2,然后用下述命令增加cos(x)的图形,也可得到图5-3。 >> hold on >> z=cos(x); plot(x,z)

Matlab图形绘制经典案例

Matlab图形绘制经典案例 1、 三维曲线 >> t=0:pi/50:10*pi; >> plot3(sin(2*t),cos(2*t),t) >> axis square >> grid on

2、一窗口多图形>> t=-2*pi:0.01:2*pi; >> subplot(3,2,1)

>> plot(t,sin(t)) >> subplot(3,2,2) >> plot(t,cos(t)) >> subplot(3,2,3) >> plot(t,tan(t)) >> axis([-pi pi -100 100]) >> subplot(3,2,4) >> plot(t,cot(t)) >> axis([-pi pi -100 100]) >> subplot(3,2,5) >> plot(t,atan(t)) >> subplot(3,2,6) >> plot(t,acot(t))

3、图形样式、标注、题字(也可以利用菜单直接Insert) >> x=0:pi/20:2*pi;

>> plot(x,sin(x),'b-.') >> hold on >> plot(x,cos(x),'r--') >> hold on >> plot(x,sin(x)-1,'g:') >> hold on >> plot(x,cos(x)-1) >> xlabel('x'); >> xlabel('x轴'); >> ylabel('y轴'); >> title('图形样式、标注等'); >> text(pi,sin(pi),'x=\pi'); >> legend('sin(x)','cos(x)','sin(x)-1','cos(x)-1'); >> [x1,y1]=ginput(1) %利用鼠标定位查找线上某点的值x1 = 2.0893 y1 = -0.5000 >> gtext('x=2.5') %鼠标定位放置所需的值在线上

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件,会尝试查找一个名为filename.fmt的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含 RGB真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(filename, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow(filename) himage = imshow(...) ●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

MATLAB绘图功能大全

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab 还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法

plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线: >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。

MATLAB图像处理相关函数

一、通用函数: colorbar显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage imshow 显示图像 语法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...) montage 在矩形框中同时显示多幅图像 语法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...) immovie 创建多帧索引图的电影动画 语法:mov=immovie(X,map) \ mov=immovie(RGB) subimage 在一副图中显示多个图像 语法:subimage(X,map) \ subimage(I) \ subimage(BW) \ subimage(RGB) \ subimage(x,y,...) \ subimage(...) truesize 调整图像显示尺寸 语法:truesize(fig,[mrows mcols]) \ truesize(fig) warp 将图像显示到纹理映射表面 语法:warp(X,map) \ warp(I ,n) \ warp(z,...) warp(x,y,z,...) \ h=warp(...) zoom 缩放图像 语法:zoom on \ zoom off \ zoom out \ zoom reset \ zoom \ zoom xon \ zoom yon\ zoom(factor) \ zoom(fig,option) 二、图像文件I/O函数命令 imfinfo 返回图形图像文件信息 语法:info=imfinfo(filename,fmt) \ info=imfinfo(filename) imread 从图像文件中读取(载入)图像 语法:A=imread(filename,fmt) \ [X,map]=imread(filename,fmt) \

第二讲 MatLab图形绘制功能Final

第二讲 MatLab图形绘制功能 教学目的:熟练掌握二维曲线作图;了解隐函数绘图;掌握三维曲线和三维曲面作图的方法和技巧;了解MATLAB图形修饰处理方法;学会一些简单动画制作手段. 教学重点:二维曲线的作图, 极坐标和参数作图; 三维曲线和曲面作图. 教学难点:点运算在作图中的应用; 曲线和曲面作图的差别; 隐函数作图.通过解说,演示以及举例子克服难点难关. 一、二维平面图形 表1基本绘图函数

hold on 命令用于在已画好的图形上添加新的图形. plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y 坐标.下例可画出一条正弦曲线: x=0:0.001:10; % 0到10的1000个点的x坐标 y=sin(x); % 对应的y坐标 plot(x,y); % 绘图 Y=sin(10*x);plot(x,y,'r:',x,Y,'b') % 同时画两个函数

若要改变颜色,在坐标对后面加上相关字串即可: x=0:0.01:10; plot(x,sin(x),'r') 若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:plot(x,sin(x),'r*') 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:

axis([0,6,-1.5,1]) MATLAB 也可对图形加上各种注解与处理: xlabel('x 轴'); % x 轴注解 ylabel('y 轴'); % y 轴注解 title('余弦函数'); % 图形标题 legend('y = cos(x)'); % 图形注解 gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置 grid on; % 显示格线 fplot 的指令可以用来自动的画一个已定义的函数分布图,而无须产生绘图所需要的一组数据作为变数.其语法为fplot('fun',[xmin xmax ymin ymax]),其中 fun 为一已定义的函数名称,例如 sin , cos 等等;而 xmin , xmax , ymin , ymax 则是设定绘图横轴及纵轴的下限及上限. 以下的例子是将一函数 f(x)=sin(x)/x 在-20> fplot('sin(x)./x',[-20 20 -0.4 1.2]) 例 画椭圆12 322 22=+y x . a = [0:pi/50:2*pi]'; %角度 π20-

基于MATLAB图像处理报告

基于M A T L A B图像处理报告一、设计题目 图片叠加。 二、设计要求 将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。 三、设计方案 、设计思路 利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素进行线性运算,利用灰度变换的算法使图片达到预期的效果。 、软件介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB 也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。

MATLAB二维绘图(直角坐标)

007. 二维绘图(直角坐标) 前言: Matlab 具有强大的绘图功能,提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形。 此外,Matlab 还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字说明等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 —————————————————————— 二维绘图可以采用不同的坐标系,如直角坐标、极坐标、对数坐标等。 一.绘制二维曲线的基本函数 1. 基本绘图函数——plot() 用于绘制二维平面上的直角坐标图,要提供一组x 坐标和对应的y 坐标,可以绘制分别以x 和y 为横、纵坐标的二维曲线。 plot(x,y)——x,y 为长度相同的向量,存储x 坐标和y 坐标 例1 在[0,2]π区间,绘制一般曲线/22sin2x y e x π-=

x=0:pi/100:2*pi; y=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y) 运行结果: 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例2 绘制参数方程曲线——星形线: x = 2 cos3 t ; y = 2 sin3 t t = 0:0.01:2*pi; x = 2.*(cos(t)).^3; y = 2.*(sin(t)).^3; plot(x,y);

运行结果: 例3 绘制参数方程曲线——摆线: x = a(t – sin t) ; y = a(1 – cos t) t = 0:0.01:2*pi; x = a.*(t - sin(t)); y = a.*(1 - cos(t)); plot(x,y); 运行结果:

用matlab数字图像处理四个实验

数字图像处理 实验指导书

目录 实验一MATLAB数字图像处理初步实验二图像的代数运算 实验三图像增强-空间滤波 实验四图像分割 3

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: ?亮度图像(Intensity images)

MatLab图形绘制功能

MatLab图形绘制功能MatLab图形绘制功能例子解读 一、二维平面图形 基本绘图函数 命令含义 plot 建立向量或矩阵各队队向量的图形 loglog x、y轴都取对数标度建立图形 semilogx x轴用于对数标度,y轴线性标度绘制图形semilogy y轴用于对数标度,x轴线性标度绘制图形title 给图形加标题 xlabel 给x轴加标记 ylabel 给y轴加标记 text 在图形指定的位置上加文本字符串 gtext 在鼠标的位置上加文本字符串 grid 打开网格线 plot绘图函数的叁数 字元颜色字元图线型态 y 黄色 . 点 k 黑色 o 圆 w 白色 x x b 蓝色 + + g 绿色 * * r 红色 - 实线

c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线 hold on 命令用于在已画好的图形上添加新的图形 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线: x=0:0.001:10; % 0到10的1000个点的x座标 y=sin(x); % 对应的y座标 plot(x,y); % 绘图 Y=sin(10*x); plot(x,y,'r:',x,Y,'b') % 同时画两个函数 , 若要改变颜色,在座标对後面加上相关字串即可: x=0:0.01:10; plot(x,sin(x),'r') 若要同时改变颜色及图线型态(Line style),也是在坐标对後面加上相关字串 即可: plot(x,sin(x),'r*') 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围 axis([0,6,-1.5,1]) MATLAB也可对图形加上各种注解与处理: xlabel('x轴'); % x轴注解 ylabel('y轴'); % y轴注解 title('余弦函数'); % 图形标题 legend('y = cos(x)'); % 图形注解 gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置 grid on; % 显示 格线

MatLab图形绘制功能

MatLab & 数学建模 第二讲 MatLab图形绘制功能 一、二维平面图形 基本绘图函数 hold on 命令用于在已画好的图形上添加新的图形 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线: x=0:0.001:10; % 0到10的1000个点的x座标

y=sin(x); % 对应的y座标 plot(x,y); % 绘图 Y=sin(10*x); plot(x,y,'r:',x,Y,'b') % 同时画两个函数 ?若要改变颜色,在座标对後面加上相关字串即可:x=0:0.01:10;

plot(x,sin(x),'r') 若要同时改变颜色及图线型态(Line style),也是在坐标对後面加上相关字串即可: plot(x,sin(x),'r*') 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围 axis([0,6,-1.5,1])

MATLAB也可对图形加上各种注解与处理: xlabel('x轴'); % x轴注解 ylabel('y轴'); % y轴注解 title('余弦函数'); % 图形标题 legend('y = cos(x)'); % 图形注解 gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置 grid on; % 显示格线 fplot的指令可以用来自动的画一个已定义的函数分布图,而无须产生绘图所须 要的一组数据做为变数。其语法为fplot('fun',[xmin xmax ymin ymax]),其中fun 为一已定义的函数名称,例如sin, cos等等;而xmin, xmax, ymin, ymax则是设定绘图横轴及纵轴的下限及上限。 以下的例子是将一函数 f(x)=sin(x)/x 在-20> fplot('sin(x)./x',[-20 20 -0.4 1.2])

matlab二维平面图形的绘制

1、基本图形函数 函数polt是针对向量或矩阵的列来绘制曲线的,其命令格式:(1)plot(x)当x是一向量时,以其元素为纵坐标,其序号为横坐标。 (2)plot(x,y) (3)plot(x,y1,x,y2,...)绘制多条曲线 例 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2)

参数选项 y黄 m紫 c青 r红 g绿 b蓝 w白 k黑-实线 :点线 -.点划线 --虚线 .点 o圆 x叉号 +加号 *星号 v下三角 ^上三角 >大于号 <小于号 s正方形 d菱形 h六角形 p五角星 例 >> plot(x,y1,'r+-',x,y2,'k*:')

2、图形修饰 图形修饰函数: grid on(/off) 添加或取消网格 xlabel('string')标记横坐标 ylabel('string')标记横坐标 title('string')添加标题 text(x,y,'string')在图形的任意位置增加文本信息gtext('string')利用鼠标添加文本信息 axis([xmin xmax ymin ymax])设置坐标轴的最小最大值例

>> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) >> grid on >> xlabel('Independent Variable X') >> ylabel('Dedependent Variable Y1&Y2') >> title('sine and cosine curve') >> text(1.5,0.3,'cos(x)') >> gtext('sin(x)')

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像imread Syntax: A = imread(, fmt) :指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到所制定的文件,会尝试查找一个名为的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含RGB 真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow() himage = imshow(...)

●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像素在图像中出现的概率。 图像的灰度直方图:是一个离散函数,表示图像每一灰度级与该灰度级出现概率的对应关系。 图像的灰度直方图运算: imhist()函数,其横坐标表示像素的灰度级别,纵坐标为像素点的个数。 ●Imhist函数=Display histogram of image data显示灰度直方图的函数 ●Syntax: ①imhist(I) % I为要计算的灰度直方图图像 ②imhist(I, n) % n指定的灰度级的数目,表示所有灰度级均匀分布在n个小区间内。 ③imhist(X, map) ④[counts,x] = imhist(...) %counts直方图数据向量。counts(i)第i个灰度区间中的像素数目。x是保存了对应的灰度小区间的向量。 注意:若调用时不接受这个函数的返回值,则直接显示直方图;在得这些返回数据之后,也可以使用stem(x,counts)手绘直方图。 ●例1:显示某一图像的灰度直方图

matlab上机习题5matlab7.0二维绘图

实验五二维绘图 实验目的: ①掌握绘制数据曲线图的方法; ②掌握绘制其他坐标系下的数据曲线图和统计分析图的方法; ③掌握绘制隐函数图形的方法。 ④掌握图形修饰处理方法; 实验要求:给出程序和实验结果。 实验内容: 8. 编制程序,该程序绘制两条曲线,x的取值在[0,2pi],易pi/10为步长,一条是正弦曲线,一条是余弦曲线,线宽为6个象素,正弦曲线为绿色,余弦曲线为红色,线型分别为实线和虚线。给所绘的两条曲线增添图例,分别为“正弦曲线”和“余弦曲线”。 9. 在同一坐标内,分别用不同线型和颜色绘制曲线y1= 和y2=(πx),标记两曲线交叉点。 10. 在0≤x≤2区间内,绘制曲线y1=和y2=cos(4πx),并给图形添加图形标注。 11.重新绘制第一题所描述的曲线,将正弦曲线和余弦曲线分别画在两个子图中,子图竖向排列。

12、绘制r=sin(t)cos(t)的极坐标图; 13、分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 实验程序与结果: 1 x=-2::2; y=sin(x).*cos(x); plot(x,y,'-r') -2 -1.5 -1 -0.5 0.5 1 1.5 2 -0.5-0.4-0.3-0.2-0.100.10.20.30.4 0.5 2 ezplot('x^2/9+y^2/16-1',[-5,5,-5,5]);

x y x 2/9+y 2/16-1 = 0 -5 -4 -3 -2 -1 01 2 3 4 5 -5-4-3-2-101234 5 3 x1=-2::2; x2=-2::2; y1=sin(x2).*x1; y2=cos(x1).*x2; plot3(x1,x2,y1,'d',x1,x2,y2,'d')

实验四 MATLAB 二维绘图的基本操作

实验四 MATLAB 二维绘图的基本操作 一、实验目的 通过图形可以从一堆杂乱的数据中观察数据间的内在关系,感受由图形所传递的内在本质。本实验主要练习并掌握二维曲线绘图的基本操作。 Time(seconds)M a k e s p a n 二、实验内容 在了解了 MATLAB 的矩阵和向量概念与输入方法之后,MA TLAB 的二维绘图就再简单不过了。假设有两个同长度的向量 x 和 y, 则用 plot(x,y) 就可以自动绘制画出二维图来。如果打开过图形窗口,则在最近打开的图形窗口上绘制此图,如果未打开窗口,则开一个新的窗口绘图。 〖例〗正弦曲线绘制,在命令窗口依次输入如下指令: >> t=0:.1:2*pi; %生成横坐标向量,使其为 0,0.1,0.2,...,6.2 >> y=sin(t); % 计算正弦向量 >> plot(t,y) %绘制图形 这样立即可以得出如下图所示的二维图:

1 0.8 0.6 0.4 0.2 -0.2 -0.4 -0.6 -0.8 -1 plot 函数还可以同时绘制出多条曲线,其调用格式和前面不完全一致,但也好理解。在命令窗口接着输入: >> y1=cos(t); >>plot(t,[y; y1]), 即输出为两个行向量组成的矩阵。 所得图形如下: 1 0.8 0.6 0.4 0.2 -0.2 -0.4 -0.6 -0.8 -1 ★plot 的基本调用格式:plot(x1,y1,选项1, x2,y2, 选项2, x3,y3, 选项3, ...),其中所有的选项如表4.1 所示。一些选项可以连用,如'-r' 表示红色实线。 练习: >> plot(x,y,'--') >> plot(x,y,'b') >> plot(x,y,'r') >> plot(x,y,'o') 由MA TLAB 绘制的二维图形可以由下面的一些命令简单地修饰。如 grid ——加网格线 xlabel('字符串') ——给横坐标轴加说明 ylabel('字符串') ——给纵坐标轴加说明,并自动旋转90 度 title('字符串') ——给整个图形加标题 axis([xmin xmax ymin ymax])——手动地设置x,y 坐标轴范围

Matlab图像处理函数汇总

1、图像的变换 ①fft2:fft2函数用于数字图像的二维傅立叶变换,如:i=imread('104_8.tif'); j=fft2(i); ②ifft2::ifft2函数用于数字图像的二维傅立叶反变换,如: i=imread('104_8.tif'); j=fft2(i); k=ifft2(j); 2、模拟噪声生成函数和预定义滤波器 ①imnoise:用于对图像生成模拟噪声,如: i=imread('104_8.tif'); j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声 ②fspecial:用于产生预定义滤波器,如: h=fspecial('sobel');%sobel水平边缘增强滤波器 h=fspecial('gaussian');%高斯低通滤波器 h=fspecial('laplacian');%拉普拉斯滤波器 h=fspecial('log');%高斯拉普拉斯(LoG)滤波器 h=fspecial('average');%均值滤波器 2、图像的增强 ①直方图:imhist函数用于数字图像的直方图显示,如: i=imread('104_8.tif'); imhist(i); ②直方图均化:histeq函数用于数字图像的直方图均化,如: i=imread('104_8.tif'); j=histeq(i); ③对比度调整:imadjust函数用于数字图像的对比度调整,如:i=imread('104_8.tif'); j=imadjust(i,[0.3,0.7],[]); ④对数变换:log函数用于数字图像的对数变换,如: i=imread('104_8.tif'); j=double(i);

实验一 Matlab_图像处理基本操作

实验一Matlab 图像处理基本操作和付立叶变换 一、matlab基本操作 1. 显示图像 >> I1=imread('D:\图像\LENA.BMP'); >> imshow(I1); >> I2=imread('D:\图像\***.BMP'); >> imshow(I2); 2、检查内存(数组)中的图像: >> whos 3、保存图像: >> imwrite(I2,'lena_2G.png'); % 将图像由原先的bmp格式另存为png格式 4、多幅图像显示 >> I1=imread('D:\图像\LENA.BMP'); >> figure //出现图形显示窗口>> subplot(1,2,1),imshow(I1);

>> I2=imread('D:\图像\**.BMP'); >> subplot(1,2,2),imshow(I2); 二、傅里叶变换 1.目的: a、理解傅里叶变换的原理 b、掌握傅里叶变换的性质 2.实验步骤: a. 首先构造一幅黑白二值图像,在128×128的黑色背景中心产生一个4×4的白色方块,对其进行傅里叶变换;(Matlab中用fft2实现2D傅里叶变换) b.把低频分量移到图象中心,而把高频分量移到四个角上;(方法有两种: 其一,在FT以前对测试图象逐点加权(-1)^(i+j);其二,利用FFTSHIFT函数); c.利用图象增强中动态范围压缩的方法增强2DFT;(Y=C*log(1+abs (X))); d.构造一幅黑白二值图像,在128×128的黑色背景中令第32行至36行、第 32列至第36列的值为1(即产生一个4×4的白色方块),对其进行傅里叶

MATLAB中图像函数大全 详解及例子

图像处理函数详解——strel 功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。 用法:SE = strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line' 'square' 'octagon 参数parameters一般控制SE的大小。 例子: se1 = strel('square',6) % 创建6*6的正方形 se2 = strel('line',10,45) % 创建直线长度10,角度45 se3 = strel('disk',15) % 创建圆盘半径15 se4 = strel('ball',15,5) % 创建椭圆体,半径15,高度5

图像处理函数详解——roipoly 功能:用于选择图像中的多边形区域。 用法:BW = roipoly(I,c,r) BW = roipoly(I) BW = roipoly(x,y,I,xi,yi) [BW,xi,yi] = roipoly(...) [x,y,BW,xi,yi] = roipoly(...) BW = roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0. BW = roipoly(I)表示建立交互式的处理界面。 BW = roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。 例子:I = imread('eight.tif'); c = [222 272 300 270 221 194]; r = [21 21 75 121 121 75]; BW = roipoly(I,c,r); imshow(I)

相关文档
最新文档