当前位置:文档之家› matlab中的图形处理功能(很全)

matlab中的图形处理功能(很全)

matlab中的图形处理功能(很全)
matlab中的图形处理功能(很全)

第六章图形处理功能

Chapter 6: The function of Image processing

一.二维图形(Two dimensional plotting)

1. 基本绘图函数(Basic plotting function):Plot, semilogx, semilogy, loglog, polar, plotyy (1). 单矢量绘图(single vector plotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。

例1:单矢量绘图

y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y)

可以在图形中加标注和网格,

例2:给例1 的图形加网格和标注。

y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y)

title('简单绘图举例'); xlabel('单元下标'); ylabel('给定的矢量'); grid(标注网格)

(2). 双矢量绘图(Double vector plotting):如x和y是同样长度的矢量, plot(x,y)命令将绘制y 元素对应于x元素的xy曲线图。

例:双矢量绘图。

x=0:0.05:4*pi; y=sin(x); plot(x,y)

(3). 对数坐标绘图(ploting in logarithm coordinate):x轴对数semilogx, y轴对数semilogy, 双对数loglog,

例:绘制数组y的线性坐标图和三种对数坐标图。

y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];

subplot(2,2,1); plot(y); subplot(2,2,2); semilogx(y)

subplot(2,2,3); semilogy(y); subplot(2,2,4); loglog(y)

(4)极坐标绘图( Plotting in polar coordinate):

polar(theta,rho) theta—角度, rho—半径

例:建立简单的极坐标图形。

t=0:.01:2*pi; polar(t,sin(2*t).*cos(2*t))

2. 多重曲线绘图(Multiple curve plotting)

(1)一组变量绘图(A group variable plotting)

plot(x,y)

(a) x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。

例1:

x=0:pi/50:2*pi; y(1,: )=sin(x); y(2,:) =0.6*sin(x); y(3, :)=0.3*sin(x); plot(x,y)

(b) x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。。

例2:

x(1,: )=0:pi/50:2*pi; x(2,: )=pi/4:pi/50:2*pi+pi/4; x(3,: )=pi/2:pi/50:2*pi+pi/2;

y=sin(x(1,: )); plot(x,y)

(c) x和y是同样大小的矩阵时, plot(x,y)绘制y矩阵中各列对应于x各列的图形。

例3:

x(:,1 )=[0:pi/50:2*pi]'; x(:,2 )=[pi/4:pi/50:2*pi+pi/4]'; x(:,3 )=[pi/2:pi/50:2*pi+pi/2]';

y(:,1 )=sin(x(:,1 )); y(:,2 )=0.6*sin(x(:,1)); y(:,3 )=0.3*sin(x(:,1));

plot(x,y)

这里x和y的尺寸都是101×3,所以画出每条都是101点组成的三条曲线。如行列转置后就会画出101条曲线,每条线由三点组成。

x(1,:)=[0:pi/50:2*pi]; x(2,:)=[pi/4:pi/50:2*pi+pi/4]; x(3,:)=[pi/2:pi/50:2*pi+pi/2];

y(1,:)=sin(x(1,:)); y(2,:)=0.6*sin(x(1,:)); y(3,:)=0.3*sin(x(1,:));

plot(x,y)

(d) 如果y是矩阵,则plot(y)绘出y中各列相对于行号的图形,对于n行矩阵,x轴的坐标为[1:n]。

(2)多组变量绘图( Multiple group variables plotting):

对于一系列相应的矩阵yi和xi,可以使用多组变量绘图法:plot(x1,y1,x2,y2,…,xn,yn),

这种方法的优点是允许将不同大小的矩阵或矢量的图形绘制在一张图上。

例:多组变量绘图。

x=0:pi/50:2*pi; y1=sin(x); y2=0.6*sin(x); y3=0.3*sin(x); plot(x,y1,x,y2,x,y3)

(3)双y轴绘图:plotyy,

在一个图形窗口绘制两组数据曲线,共用一个x轴,图形两边各有一个y轴。两条图线可以调用不同的绘图方法。

例1:

x=0:0.3:12; y=exp(-0.3*x).*sin(x)+0.5; plotyy(x,y,x,y,'plot','stem')

左侧y轴对应plot形式的绘图,右侧y轴对应stem形式的曲线。

例2:对于y坐标不同的情况。

t=0:900; A=1000; a=0.005; b=0.005; z1=A*exp(-a*t); z2=sin(b*t);

plotyy(t,z1,t,z2,'semilogy','plot')

3. 图线形式和颜色(Style and color of plot)

(1) 图线的形式: (style of plot)MATLAB提供的四种线形,

实线虚线- - ,冒号线:,点划线-- .

标记点类型:. , + , *, o, ×, s (或square), d (或diamond), △, ▽, <, >, p (或pentagram), h (或hexagram),

plot(x,y,’—‘),plot(x1,y1,’:’,x2,y2,’*’)

例1:选择不同的线形绘图。

t=0:pi/100:2*pi; y=sin(t); y2=sin(t-0.25); y3=sin(t-0.5);

plot(t,y,'-',t,y2,'-',t,y3,':')

例2:选择不同的标记点绘图。

t=0:pi/20:2*pi; x=t.^3; y=sin(t); plot(x,y,'o')

(2) 线的颜色(color of plot):MA TLAB中可选的颜色:红r,绿g,

蓝b, 黄y, 粉红m, 青c(cyan) 黑k.

例:t=0:pi/20:2*pi;

y=sin(t); plot(t,y,'r'), plot(t,y,'g+')

(3) 图线的其他属性(other characters of plot):可设置图线的宽度、标记点的边缘颜色、填

充颜色、标记点的大小等。

例:设置图线的线形、颜色、宽度、标记点的颜色及大小。

t=0:pi/20:pi; y=sin(4*t).*sin(t)/2;

plot(t,y,'-bs','LineWidth',2,'MarkerEdgeColor','k', 'MarkerFaceColor', 'y','MarkerSize',10)

4. 复数绘图(Complex plotting): plot用于函数绘制复数的图形时,通常虚部是被忽略的。但plot只作用于单个复变量z时,则绘出的是实部对虚部的关系图(复平面上的一组点)。即这时plot(z)等价于plot(real(z)).

例:画一个20 边的多边形(用exp函数生成),顶角用小圆圈表示。

t=0:pi/10:2*pi; plot(exp(i*t),'o'); axis('square')

如果在复平面绘制多重线,只能分别以实部和虚部为坐标来绘制,否则虚部将被忽略,并给出警告。

二.图形的控制与表现(Figure control and representation)

MATLAB提供的用于图形控制的函数和命令:

axis: 人工选择坐标轴尺寸.

clf:清图形窗口.

ginput:利用鼠标的十字准线输入.

hold:保持图形.

shg:显示图形窗口.

subplot:将图形窗口分成N块子窗口。

1.图形窗口(figure window)

(1). 图形窗口的创建和选择(Creating and selecting of figure window)

figure(n)函数用于为当前的绘图创建图形窗口,每运行一次figure就会创建一个新的图形窗口,n表示第个n窗口,如果窗口定义了句柄,也可以用figure(h)将句柄h的窗口作为当前窗口。

clf 命令用于清除当前图形窗口中的内容。

shg命令用于显示当前图形窗口。

(2). 在一个图形窗口中绘制多个子图形(Drawing several subfigures in a single window) subplot(m,n,p), 把窗口分成m×n个小窗口,并把第p个窗口当作当前窗口。

例:将4 个图形显示在同一个图形窗口中。

t=0:pi/20:2*pi; [x,y]=meshgrid(t);

subplot(2,2,1); plot(sin(t),cos(t)); axis equal

subplot(2,2,2); z=sin(x)+cos(y); plot(t,z); axis([0 2*pi –2 2])

subplot(2,2,3); z=sin(x).*cos(y); plot(t,z); axis([0 2*pi –1 1])

subplot(2,2,4); z=sin(x).^2-cos(y).^2; plot(t,z); axis([0 2*pi –1 1])

(3). 在一个已有的图形上绘图(Drawing a figure on the figure was existed):

用hold on命令在一个已有的图形上继续绘图,使用hold off命令结束继续绘图。

例:将peaks函数的等高线图与伪彩色画在一起。

[x,y,z]=peaks; %产生双变量数组

contour(x,y,z,20,'k') %绘制等高线

hold on

pcolor(x,y,z) %绘制伪彩色图

shading interp %表面色彩渲染

hold off

2.坐标轴控制命令(Axis control commands)

控制坐标性质的axis函数的多种调用格式:

axis(xmin xmax ymin ymax):指定二维图形x和y轴的刻度范围,

axis auto 设置坐标轴为自动刻度(缺省值)

axis manual(或axis(axis))保持刻度不随数据的大小而变化

axis tight 以数据的大小为坐标轴的范围

axis ij 设置坐标轴的原点在左上角,i为纵坐标,j为横坐标

axis xy 使坐标轴回到直角坐标系

axis equal 使坐标轴刻度增量相同

axis square 使各坐标轴长度相同,但刻度增量未必相同

axis normal 自动调节轴与数据的外表比例,使其他设置失效

axis off 使坐标轴消隐

axis on 显现坐标轴

(1) 坐标轴的范围(Domain of coordinates axis):

二维图形坐标轴范围在缺省状态下是根据数据的大小自动设置的,如欲改变,可利用axis(xmin xmax ymin ymax),函数来定义。

例:定义坐标轴范围对观察图形的影响。

x=0:.01:pi/2; figure(1); plot(x,tan(x),'-ro') %ymax=tan(1.57),而其他数据都很小,结果将

%使图形难于进行观察和判断。

figure(2); plot(x,tan(x),'-ro'); axis([0, pi/2,0,5]) %对坐标轴的范围进行控制就可得到较满意的绘图结果

(2)显示比例对绘图结果的影响(Effect of display scaling on plotting results)

例:比较(Default, axis square, axis equal, axis tight)几种不同的显示方式的显示效果。

t=0:pi/20:2*pi; figure(1);

subplot(2,1,1); plot(sin(t),2*cos(t)); grid on %缺省状态下的图形比例

subplot(2,1,2); plot(sin(t),2*cos(t)); axis square; grid on %正方形的显示比例

figure(2)

subplot(1,2,1); plot(sin(t),2*cos(t)) ; axis equal; grid on %具有相等的刻度比例

subplot(1,2,2); plot(sin(t),2*cos(t)); axis tight ; grid on %紧缩形式

3.图形标注(Marking on the figure):MATLAB的图形标注方法(表6—7)

title 标题,

xlabel x轴标注,

ylabel y轴标注,

text 任意定位的标注

gtext 鼠标定位标注,

legent 标注图例

图形标注可以使用字母,数字,汉字或按规定的方法表示希腊字母,如\pi表示π,\leq表示≤,\rm表示后面的字恢复为正体字,\it表示斜体字,FontSize表示字体的大小,FontName 表示字体的类型等。

可以使用图形窗口的Insert菜单,也可以使用属性编辑器,还可以使用函数输入的方法加标注,以下介绍相关函数的使用方法。

(1). 加注坐标轴标识和图形标题(Add axis labels and title of figure)

加注坐标轴标识:xlabel(‘s’), ylabel(‘s’)

图形标题: title(‘s’)

例:加注坐标轴标示和图形标题。

t=0:pi/100:2*pi;y=sin(t);

plot(t,y)

axis([0 2*pi,-1 1])

xlabel('0 \leq \itt \rm \leq \pi','FontSize',16)

ylabel('sin(t)','FontSize',20)

title('正弦函数图形','FontName','宋体','FontSize',20)

(2). 图中加注文本(Add text in the figure)

text(x,y,’字符串’)

例:在上图中加语句。

t=0:pi/100:2*pi;

y=sin(t);

plot(t,y)

axis([0 2*pi,-1 1])

xlabel('0 \leq \itt \rm \leq \pi','FontSize',16)

ylabel('sin(t)','FontSize',20)

title('正弦函数图形','FontName','隶书','FontSize',20)

text(3*pi/4,sin(3*pi/4),'\leftarrowsin(t)=0.707', 'FontSize',16)

text(pi,sin(pi),'\leftarrowsin(t)=0', 'FontSize',16)

text(5*pi/4,sin(5*pi/4),'sin(t)=-0.707\rightarrow','FontSize',16, ...

'HorizontalAlignment','right')

句中:

leftarrow 表示加一个向左的箭头

rightarrow表示加一个向右的箭头

HorizontalAlignment 表示右对齐水平排列

gtext函数用于在图形窗口上用鼠标直接在指定的位置上加注文本,调用格式:gtext(‘字符串‘)

例:

t=0:pi/100:2*pi;

y=sin(t);

plot(t,y)

axis([0 2*pi,-1 1])

xlabel('0 \leq \itt \rm \leq \pi','FontSize',16)

ylabel('sin(t)','FontSize',20)

title('正弦函数图形','FontName','隶书','FontSize',20)

gtext('MATLAB')

(3). 指定TeX字符

例:在标题中指定TeX字符

t=0:pi/100:2*pi;

alpha=-0.8;

beta=15;

y=sin(beta*t).*exp(alpha*t);

plot(t,y)

title('{\itAe}^{-\it\alpha\itt}sin\it\beta{\itt}\it\alpha<<\it\beta')

xlabel('时间\mus.'),

ylabel('幅值')

在title中的字符串表现的是Aeαt sinβtα<<β

{\itAe}^{-\it\alpha\itt} sin\it\beta{\itt}\it\alpha<<\it\beta’

斜体Ae 上标斜体αt斜体βt斜体α斜体β

4.在图形中添加图例框(Add legend in the figure)

legend(字符串1,字符串2,…)

例:在当前图形中添加图例说明。

x=0:pi/10:2*pi;

y1=sin(x);

y2=0.6*sin(x);

y3=0.3*sin(x);

plot(x,y1,x,y2,'-o',x,y3,'-*')

legend( '曲线1','曲线2','曲线3')

legend('boxoff')

legend函数的其他功能见(表6—8)

三.特殊图形(Special figure)

1.条形图(Bar figure):bar(y), bar(x,y), barh, bar3(y), bar3(x,y), bar3h(x,y)

(1) 二维条形图:bar(y), bar(x,y), barh,

(a).如果y是矢量,bar(y) 绘制最简单的条形图, 每一个条形图的位置由y元素的下标决定,高度由y元素的大小决定。

例1:

a=[1 3 5;4 3 7;2 8 4]; bar(a)

(b) 当y是m×n阶的矩阵时,bar(y) 绘制的条形图以分组或叠加的形式表现。矩阵中每一行元素绘制在一组中,每一列元素绘制在每组中相对应的位置上(各组中同样颜色的条形表示同一列数据)。

例2:

y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; bar(y)

例3:绘制分组形式的水平条形图。

y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; barh(y)

例4:绘制叠加形式的条形图。

y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; bar(y,’stack’)

例5:绘制叠加形式的水平条形图。

y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; barh(y,'stack')

(b) 使用bar(x,y)绘制指定x坐标的条形图,其中x必须是矢量,用于确定各组条形图的位置。

例1:指定x坐标的二维条形图,

x=[1 2 4 7 10]; y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; bar(x,y)

例2:指定x坐标的水平二维条形图,

x=[1 2 4 7 10]; y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; barh(x,y)

例3:绘制指定x坐标的叠加形式的二维条形图。

x=[1 2 4 7 10]; y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; bar (x,y,'stack')

如果y也是矢量,对应每一个x坐标有一个条形,条形的高度表示了矢量y元素的大小。例4:

x=0:pi/10:2*pi; y=sin(x); bar(x,y)

(2). 三维条形图:bar3(y),将m×n阶的矩阵绘制成分布在三维空间中的柱体,有分组形式和分列形式两种。

例1:分组形式的三维条形图。

y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; bar3 (y,'group')

例2:分列形式的三维条形图。

y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; bar3 (y)

(3)条形图中的图形叠加:通过在相同的位置创建一个与原来条形图中的坐标轴相对独立的新的坐标轴实现条形图的叠加。

例:有两组实验数据,一组表示物质成分(TCE),一组表示温度(temp),数据是在35天中每隔5天的采样,将物质成分和温度与时间的关系画在一张图中。

TCE=[515 420 370 250 135 120 60 20]; %实验数据

temp=[29 23 27 25 20 23 23 27];

days=0:5:35; %采样天数

bar(days,temp,'c') %温度与时间的条形图

xlabel('Day')

ylabel('Temperature (^{o}C)')

h1=gca; %获取当前轴对象句柄

h2=axes('position',get(h1,'position'));

%建立新的与h1位置相同的对象句柄

plot(days,TCE,'LineWidth',3)

%在以为句柄的坐标对象上绘制物质成分与时间的关系曲线

set(h2,'YaxisLocation','right','color','none','Xticklabel',[])

%设置句柄为h2的坐标轴对象的y轴为右侧。

set(h2,'Xlim',get(h1,'Xlim'),'Layer','top')

%设置句柄为h2的坐标轴对象的x轴的范围与句柄为h1 的%坐标轴对象轴的范围相同。text(11,380,'Concentration','Rotation',-55,'FontSize',16)

% 在坐标为[11,380] 的位置以旋转-55°%的方向书写concentration

ylabel('TCE Concentration (PPM)')

title('Bioremediation','FontSize',16)

饼图(pie):用于表示矢量或矩阵中各元素所占有的比例。,函数pie和pie3提供平面饼图和三维饼图的绘图功能。

*pie(x) 使用x中的数据绘制饼图,x中的每一个元素用饼图中的一个扇区表示。

*pie(x,explode) 将一些扇区从饼图中分离出来,explode为一个与x尺寸相同的矩阵,其非零元素所对应的x矩阵中的元素从饼图中分离出来。

(1) 不分离饼图:pie(x)

例1:不分离饼图:

x=[5.5 74.7 44.5 33.2 46.6]; pie(x)

(2) 带分离切块的饼图:在矢量x的后面加一个与x相同长度的矢量,该矢量中所有不为0的元素所对应的矢量x中的切块将被分离出来。

例2:

x=[5.5 74.7 44.5 33.2 46.6]; pie(x,[0 0 0 0 1]) %分离第5块

(3) 不完整的饼图:当x的全部元素之和小于1时绘制的是不完整饼图。

例3:

x=[0.2 0.3 0.4]; pie(x)

(4) 三维饼图:有一定厚度的饼图,由函数pie3实现,调用方法与二维饼图相同。

例:带分离切块的三维饼图。

pie3([1 2 3 4 5],[0 1 0 1 0])

3. 其他图形(Other figures):MA TLAB有20多种特殊图形的绘制方法,下述为常用方法。(1)直方图(hist):一种统计运算的结果,它的横轴是数据的幅度,纵轴是对应于各个幅度数据出现的次数,直方图没有负数。

例1:直角坐标系下矢量的直方图。

yn=randn(10000,1);

figure(1)

hist(yn) %缺省状态下画10个条形

figure(2)

hist(yn,20) %可以设置n个条形个数

例2:直角坐标系下的三维数组的直方图。

y=randn(10000,3);

figure(1)

hist(y) %缺省状态下画10个条形

figure(2)

hist(y,20) %hist(y,n)可以设置条形个数为n

(2) 用杆状图表现离散数据

例1:二维杆状图。

x=0:0.2:10; y=exp(-0.3*x).*sin(x);

figure(1); stem(x,y)

figure(2); stem(x,y,':sr') %可用字符串改变线形、标记点形状和颜色

例2:用三维杆状图表现复平面快速傅立叶变换计算。

th=(0:127)/128*2*pi; x=cos(th); y=sin(th); f=abs(fft(ones(10,1),128));

stem3(x,y,f','d','fill')

xlabel('实部'); ylabel('虚部'); zlabel('幅值')

title('频率响应幅值')

例2:用三维杆状图与其他图形的叠加表现拉普拉斯变换基函数。

t=0:0.1:10; s=0.1+i; y=exp(-s*t); %计算延迟指数

stem3(real(y),imag(y),t,'m'); hold on

hline=(plot3(real(y),imag(y),t,'k') %返回三维曲线图的句柄

hold off; set(hline,'LineWidth',3) %设置线宽

xlabel('实部'); ylabel('虚部'); zlabel('幅值')

(3)阶梯图

阶梯图的表现方法:调用函数stairs(x,y),每一阶梯的起始点为矢量y的数据点。(STAIRS(X,Y) draws a stairstep graph of the elements in vector Y at

the locations specified in X. The X-values must be in

ascending order and evenly spaced.)

例:绘制函数阶梯图。

alpha=0.01; beta=0.5; t=0:10; f=exp(-alpha*t).*sin(beta*t);

stairs(t,f); hold on; plot(t,f,':*') %绘制虚线图以说明阶梯图阶梯起始点的位置

hold off; label='函数e^{-(\alpha*t)} sin\beta*t的阶梯图';

text(0.5,-0.2,label,'FontSize',14); xlabel('t=0:10','FontSize',14); axis([0 10 -1.2 1.2])

(4) 彩色分散点图(Color scatter figure)

彩色分散点图函数:scatter(x,y,c,s) x, y为两个矢量,用于定位数据点,s为绘图点的大小,c为绘图所使用的色彩,s和c均可以以矢量或表达式形式给出,s和c为与x或y同长度的矢量时标记点尺寸和颜色将按线性规律变化。在scatter函数的前4各参数之后还可以增加第五个参数‘ filled‘,表示填充绘图点。Scatter与plot 的最大差别在于Scatter可以绘制变尺寸、变颜色的点图。

例:给定数据t=0:pi/10:2*pi, y=sin(t),观察在不同输入参数时函数的绘图结果。

t=0:pi/10:2*pi; y=sin(t)

subplot(3,2,1); scatter(t,y)

subplot(3,2,2); scatter(t,y,'v')

subplot(3,2,3); scatter(t,y,(abs(y)+2).^4,'filled')

subplot(3,2,4); scatter(t,y,30,[0:2: 40],'v','filled')

subplot(3,2,5); scatter(t,y,(t+1).^3,y,'filled')

非常全非常详细的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 特殊图形和高维可视化 2009-10-20 01:06 7.4 特殊图形和高维可视化 7.4.1 特殊图形指令例示 7.4.1.1 面域图area 【* 例7.4.1 .1-1 】面域图指令area 。该指令的特点是:在图上绘制多条曲线时,每条曲线(除第一条外)都是把“前”条曲线作基线,再取值绘制而成。因此,该指令所画的图形,能醒目地反映各因素对最终结果的贡献份额。注意:( 1 )area 的第一输入宗量是单调变化的自变量。第二输入宗量是“各因素”的函数值矩阵,且每个“因素”的数据取列向量形式排放。第三输入宗量是绘图的基准线值,只能取标量。当基准值为0 (即以x 轴为基准线)时,第三输入宗量可以缺省。(2 )本例第<4> 条指令书写格式x' , Y' ,强调沿列方向画各条曲线的事实。 clf;x=-2:2 % 注意:自变量要单调变化 Y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5] % 各因素的相对贡献份额 Cum_Sum=cumsum(Y) % 各曲线在图上的绝对坐标 area(x',Y',0) %<4> legend(' 因素A',' 因素B',' 因素C'),grid on,colormap(spring) x = -2 -1 0 1 2 Y = 3 5 2 4 1 3 4 5 2 1 5 4 3 2 5 Cum_Sum = 3 5 2 4 1 6 9 7 6 2 11 13 10 8 7

图 7.4.1 .1-1 面域图表现各分量的贡献 7.4.1.2 各种直方图bar, barh, bar3, bar3h 【 * 例 7.4.1 .2-1 】二维直方图有两种图型:垂直直方图和水平直方图。而每种图型又有两种表现模式:累计式:分组式。本例选其两种加以表现。 x=-2:2; % 注意:自变量要单调变化 Y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5]; % 各因素的相对贡献份额 subplot(1,2,1),bar(x',Y','stacked') % “累计式”直方图 xlabel('x'),ylabel('\Sigma y'),colormap(cool)% 控制直方图的用色legend(' 因素 A',' 因素 B',' 因素 C') subplot(1,2,2),barh(x',Y','grouped') % “分组式”水平直方图 xlabel('y'),ylabel('x') 图 7.4.1 .2-1 二维直方图 clf;x=-2:2; % 注意:自变量要单调变化 Y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5]; % 各因素的相对贡献份额 subplot(1,2,1),bar3(x',Y',1) % “队列式”直方图 xlabel(' 因素 ABC'),ylabel('x'),zlabel('y') colormap(summer) % 控制直方图的用色 subplot(1,2,2),bar3h(x',Y','grouped') % “分组式”水平直方图 ylabel('y'),zlabel('x')

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平台的可视化图像处理系统设计方法

[收稿日期]20050228 [作者简介]黄书先(1962),女,1983年大学毕业,硕士,副教授,现主要从事石油勘探开发研究与科研管理工作。 基于MATLAB 平台的可视化图像处理系统 设计方法 黄书先 (长江大学科学技术处,湖北荆州434023) [摘要]以MATLAB 为工作语言和开发环境,开发了一个在M AT LAB 平台下的可视化图像处理系统, 可实现包括对测井图像在内的一般图像的精细处理,并能和用户开发的程序接口。为M AT LAB 的再开发 和可视化系统的设计作了有益的探索。 [关键词]MATLAB;图像处理;可视化GUI 界面 [中图分类号]TP 311111 [文献标识码]A [文章编号]16731409(2005)04015803 MAT LAB 的图像处理工具为自然科学各学科领域的学者、研究人员和工程师提供了一个直观的灵活的环境,用以解决复杂的图像处理问题。用MAT LAB 语言开发的图像处理算法可以在所有支持MAT LAB 的平台上共享。也可以将m 语言算法和现存的C 程序集成在一起或者将MATLAB 开发的m 语言算法和GU Is 编译为C/C++代码,供其他程序调用,或者发布为一个独立的应用程序。下面笔者提出一个基于MATLAB 平台的可视化图像处理系统设计方法,可用于包括测井图像资料在内的一般图像的精细处理。 1 系统总体设计 在MAT LAB 中有个重要的图像处理工具包[1],该工具包是由一系列支持图像处理操作的函数组成的,按功能可以分为以下几类:图像显示;图像文件输入与输出;几何操作;像素值统计;图像增强;图像识别;图像滤波;图像变换;邻域和块操作;二值图像操作;颜色映射和颜色空间转换;图像格式转换等。和其他工具包一样,用户还可以根据需要书写自己的函数,以满足特定的需要;也可以将这个工具包和信号处理工具包或小波工具包等其他工具包联合起来使用。 MAT LAB 提供了交互式的GU I 开发环境[2~4],用户只需要设置各个对象相应的属性,系统自动生成与之对应的界面,大大减少了开发的难度。本设计的MAT LAB 图像处理系统由封面、主界面和各个子功能界面组成,其框图如图1所示。程序总流程图如图2所示。 2 封面界面设计 首先用MAT LAB 编辑封面的脚本文件,生成系统的封面界面,然后再进入处理的主界面。 在设计封面时,要做好封面的总体布局,力求完美。要插入背景,首先要找到所用的函数(这在一般的书中很难找到);其次要注意设置axes 的属性。在显示背景图像时,不能用imshow ()函数,如果用此函数,背景图像只能显示在封面的一部分,不能整屏覆盖;而要用imagesc ()函数。MATLAB 提供修改文本中文字的字体,它支持华文中宋、华文彩云、华文仿宋、楷书、黑体等,功能较强。 在设计封面的过程中,最主要的技术是要解决时间的显示,如果只用MATLAB 中的clock ()函数,则显示的是静态时间,而不会显示和电脑同步的动态时间。为了解决这个问题,需做一个循环判断语句:while find (get (0,'c hildren'))==h0。成立的条件是,只要是当前窗口循环,否则停止,这样可以减少CPU 的负担。同时,要实时提取clock ()函数,可用fix (clock),使提取的时间更美观。#158#长江大学学报(自科版)2005年4月第2卷第4期/理工卷第2卷第2期 Jour nal of Yangtze University (Nat Sci Edit)Apr 12005Vol 12No 14/Sci &Eng V,Vol 12No 12

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图形绘制

实验二matlab图形绘制 一、实验目的 1、学习MATLAB图形绘制的基本方法; 2、熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 二、实验原理 1.二维数据曲线图 (1)绘制单根二维曲线plot(x,y); (2)绘制多根二维曲线plot(x,y) 当x是向量,y是有一维与x同维的矩阵时,则绘制多根不同颜色的曲线。当x,y是同维矩阵时,则以x,y对应列 元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3)含有多个输入参数的plot函数plot(x1,y1,x2,y2,…,xn,yn) (4)具有两个纵坐标标度的图形plotyy(x1,y1,x2,y2) 2.图形标注与坐标控制 1)title (图形名称) 2)xlabel(x轴说明) 3)ylabel(y轴说明) 4)text(x,y图形说明) 5)legend(图例1,图例2,…) 6)axis ([xmin xmax ymin ymax zmin zmax]) 3.图形窗口的分割 subplot(m,n,p) 4.三维曲线 plot3(x1,y1,z1,选项1,x2,y2,选项2,…,xn,yn,zn,选项n)

5.三维曲面 mesh(x,y,z,c) 与surf(x,y,z,c)。一般情况下,x ,y ,z 是维数相同的矩阵。X ,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围。 三、实验内容及步骤 1.绘制下列曲线: (1) 2 1100 x y += x=0:0.02:10; y=100./(1+x.^2); plot(x,y) title('my first plot'); xlabel('x'); ylabel('y'); grid on 截图:

第二讲 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数字图像处理四个实验

数字图像处理 实验指导书

目录 实验一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基本图像处理程序

图像读入 ●从图形文件中读入图像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彩色图像及增强处理设计方法讲解

课程设计 题目基于MATLAB彩色图像及增强处理设计方法 学生姓名曹刘惠子学号 1110064087 所在院(系)物电学院 专业班级电子信息科学与技术1103 指导教师蒋媛 完成地点博源楼1102教室

基于MATLAB彩色图像及增强处理设计方法 曹刘惠子 (陕西理工学院物电学院电子信息科学与技术专业1103班级,陕西汉中 723000) 指导老师:蒋媛 [摘要]图像增强是指依据图像所存在的问题,按特定的需要突出一幅图像中的某一些信息,同时,削弱或去除某些冗余信息的处理方法。其主要目的是使得处理后的图像对给定的应用比原来的图像更加有效同时可以有效的改善图像质量。图像增强单纯从技术上可分成两大类:一类是频域处理法;一类是空域处理法。大多数是以灰度映射变换为基础的,所用的映射变换取决于增强的目的。彩色图像比灰度图像包含更多的信息,无论是对人们的视觉感受,还是后续的图像理解与分析,彩色图像都具有灰度图像无可比拟的优越性。本文主要研究基于MATLAB彩色图像的增强方法。不同原理产生的彩色图像有不同的处理方法,故在本文中主要论述彩色图像增强用法之间以及仿真结果的比较。 运用MATLAB 软件实现彩色图像增强仿真,比较处理方法。 [关键词]彩色图像图像增强时域频域MATLAB

目录 1绪论 (5) 1.1课题研究目的及意义 (5) 1.2本课题的研究内容 (5) 2彩色图像及其增强处理设计方法 (5) 2.1基本概念 (5) 2.2图像处理工具 (5) 2.3伪彩色增强 (6) 2.4真彩色增强 (8) 2.5假彩色增强 (10) 3 程序实现及比较 (10) 3.1伪彩色图像增强 (10) 3.2真彩色图像增强 (11) 3.3假彩色图像增强 (13)

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中文教程共63页

MatLab简介 MATLAB是什么? 典型的使用包括: 数学和计算 算术发展模型, 模拟,和原型 数据分析,开发,和可视化 科学和工程图学 应用发展包括图形用户界面设计 MATLAB表示矩阵实验室。 MATLAB系统 MATLAB系统由5主要的部分构成: 1. MATLAB语言。这是高阶的矩阵/数组语言,带控制流动陈述,函数,数据结构,输入/输出,而且面向目标的编程特点。 Ops 操作符和特殊字符。 Lang 程序设计语言作。 strfun 字符串。 iofun 输入/输出。

timefun 时期和标有日期。 datatypes数据类型和结构。 2. MATLAB工作环境。这是你作为MATLAB用户或程序编制员的一套工具和设施。 3. 制图这是MATLAB制图系统。它为2维上,而且三维的数据可视化,图象处理,动画片制作和表示图形包括高阶的指令在内。它也为包括低阶的指令在内,允许你建造完整的图形用户界面(GUIs),MATLAB应用。制图法功能在MATLAB工具箱中被组织成5文件夹: graph2d 2-的维数上的图表。 graph3d 三维的图表。 specgraph 专业化图表。 graphics 制图法。 uitools 图形用户界面工具。 4. MATLAB的数学的函数库。数学和分析的功能在MATLAB工具箱中被组织成8文件夹。 elmat 初步矩阵,和矩阵操作。 elfun 初步的数学函数。 specfun 专门的数学函数。 matfun 矩阵函数-用数字表示的线性的代数。 datafun 数据分析和傅立叶变换。 polyfun 插入物,并且多项式。

实验一 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的白色方块),对其进行傅里叶

相关主题
文本预览
相关文档 最新文档