当前位置:文档之家› 第六章 matlab图形处理功能

第六章 matlab图形处理功能

第六章 matlab图形处理功能
第六章 matlab图形处理功能

第六章图形处理功能

Chapter 6: The function of Image processing

MATLAB提供了大量用于将矢量数据以曲线图形方式进行显示的函数,包括用于实现图标绘制、科学曲线绘制和各种专业数据可视化显示的二维图形绘制函数;用于表示向量场的数据及二元函数的图形表达的三维图形绘制函数;提供了用于图形效果高级处理的相关函数以及图形句柄操作函数;柱状图、饼图和直方图等特殊图形绘制函数;动画制作等丰富的3D可视化功能。

一.二维图形(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):MATLAB中可选的颜色:红r,绿g,

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

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

y=sin(x);

plot(x,y,'r'), plot(x,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个窗口当作当前

窗口。

subplot(‘position’,[left bottom width height]),把窗口分成若干个大小

可设定的小窗口,在指定位置的矩形区域中建立axes,

left bottom width height是规一化的坐标指定区域的

位置和大小,坐标原点在左下角,右上角坐标为(1,

1)。

例1:将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])

例2:将多个图形分配不同的位置和大小,并显示在同一个图形窗中。

a=[1:200]*pi/100;

subplot('position',[0.05 0.55 0.9 0.4]);%建立第一个区域

surf(peaks(26));

subplot('position',[0.05 0.05 0.4 0.4]); %建立第二个区域

plot(sin(a));

subplot('position',[0.55 0.05 0.4 0.4]); %建立第三个区域

plot(3-a.*a);

例3; 利用图形句柄将多个图形分配不同的位置和大小,并显示在同一个图形窗中。

a1=axes; %建立第一个区域

set(a1,'position',[0.05 0.55 0.9 0.4]); %定位于窗口的上方

a2=axes;%建立第二个区域

set(a2,'position',[0.05 0.05 0.4 0.4]); %定位于窗口的左下方

a3=axes;%建立第三个区域

set(a3,'position',[0.55 0.05 0.4 0.4]); %定位于窗口的右下方

a=[1:200]*pi/100;

s=sin(a);

c=cos(a);

t=1+a.*a;

axes(a1);

plot(a/pi,s);

axes(a2);

plot(a/pi,c);

axes(a3);

plot(a/pi,t);

(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') %y max=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实现,调用方法与二维饼图相同。

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

x=[5.5 74.7 44.5 33.2 46.6];

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

3. 其他图形(Other figures):MATLAB有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.) 例:绘制函数)

sin(t t e f βα-=阶梯图。

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)

非常全非常详细的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函数。

图形处理功能

第六章图形处理功能 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))

图像分割程序设计汇总

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年秋季学期 图像处理综合训练 题目:图像分割程序设计 专业班级: 姓名: 学号: 指导教师: 成绩:

目录 摘要 (1) 一、前言 (2) 二、算法分析与描述 (3) 三、详细设计过程 (5) 四、调试过程中出现的问题及相应解决办法 (8) 五、程序运行截图及其说明 (8) 六、简单操作手册 (12) 设计总结 (15) 参考资料 (16) 致谢 (17) 附录 (18)

摘要 图像分割就是从图像中将某个特定区域与其他部分进行分离并提取出来的处理 通常又称之为图像的二值化处理。图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。近年来,研究人员不断改进原有的图像分割方法并把其它学科的一些新理论和新方法用于图像分割,提出了不少新的分割方法。 关键词:图像分割;阈值;二值化;

一、前言 图形图像处理的应用领域涉及人类生活和工作的各个方面,它是从60年代以来随计算机的技术和VLSI的发展而产生、发展和不断成熟起来的一个新技术领域理论上和实际应用上都并取得了巨大的成就。数字图像处理与模拟图像处理的根本不同在于,它不会因图像的存储、传输或复制等一系列变换操作而导致图像质量的退化,所以图形图像的处理在我们的生活中又很重要的作用。在对图像的研究和应用中,人们往往只对图像中的某些部分感兴趣。这些部分通常称为目标或前景,它们一般对应图像中特定的、具体独特性质的区域。为了辨识和分析目标,需要将它们分别提取出来,在此基础上才有可能对目标进一步利用。图像分割就是指把图像分成各具特性的区域并提取出感兴趣的目标的技术和过程。在图象分析中,通常需将所关心的目标从图象中提取出来,即图象的分割。图象分割在图象分析,图象识别,图象检测等方面占有非常重要的位置。

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基本图像处理程序

图像读入 ●从图形文件中读入图像 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):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

图形图像处理期末考试AB卷及答案

计算机专业《图形图像处理》期末考试试卷(A) 考试时间:90分钟 姓名____________ 学号____________ 成绩______________ 填空题(50分)每空1分 除了使用按钮进行软件的退出之外,还有其他3种方法同样可以将软件关闭,分别是 ___________、___________、___________。 新建文件的方法有3种,分别是___________、___________、___________。 打开文件的方法有3种,分别是___________、___________、___________。 将鼠标光标放置在_________栏的蓝色区域上双击,即可将窗口在最大化和还原状态之间切换。 按键盘中的_______键可以将工具箱、属性栏和控制面板同时显示或隐藏。 在RGB【颜色】面板中【R】是___________颜色、【G】是___________颜色、【B】是___________颜色。 图像文件的大小以___________和___________为单位,它们之间的大小换算单位为 ___________KB=___________MB。 按键盘中的___________键,可以将当前工具箱中的前景色与背景色互换。 当利用工具绘制矩形选区时,按下键盘中的Shift键,可以绘制___________形态的选择区域;按下键盘中的Shift +Alt键,可以绘制___________形态的选择区域;按下键盘中的Alt键,可以绘制___________形态的选择区域。 在Photoshop系统中,新建文件默认分辨率值为___________像素点/英寸,如果进行精美彩印刷图片的分辨率最少应不低于__________像素点/英寸。 在【通道】面板底部有四个按钮,它们的功能分别是:___________按钮、___________按钮、___________按钮、___________按钮。

基于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

图形图像处理教学大纲

《图形图像处理》理论教学大纲 开课院( 部) :工程技术学院 撰写时间:2012年3 月 课程名称:图形图像处理 英文名称:Graphic image processing 课程所属层面: ①公共基础②学科基础③专业知识④工作技能 课程性质:①必修②限选③任选 课堂讲授学时:32 实践学时:32 总学时:64 总学分:4 周学时:4 开课学期:第2 学期 一、课程目的与要求 1、基础知识目标:本课程全面细致地介绍了AdobePhotoshop CS 的各项功能,包括工具箱以及各工具选项栏的详细使用方法,选区的创建,蒙板、通道和图层的应用,如何扫描图像、打印图像以及图像 的色彩调节,滤镜特殊效果的使用。 2、能力目标:具有熟练使用Photoshop CS软件的能力;具有对平面图像进行熟练处理的能力以及使用图像输入、输出及打印的能力。

3、素质目标:通过实践环节的训练,树立理论联系实际的观点,培养实践能力、创新意识和创新能力、培养高技能人才奠定必要的基础。 二、与其它相关学科的衔接 《Photoshop CS 图形图像处理》属于一门专业必修课,在后继 的《Dreamever 网页设计》,《Flash MX设计》等课程中,都有图形图像,动画的制作和处理,因此,本课程在大纲的编写和今后的教学实 施过程中,都应该格外重视它的应用性。 三、教学内容与要求 第一章开始Photoshop CS 之旅 本章教学目标与要求:掌握Photoshop CS 基本术语及相关概念;了解Photoshop CS界面;了解Photoshop CS的各种功能;了解历史面板的作用和使用方法,掌握Photoshop CS 基本操作。 本章重点:矢量图与位图解、图像的分辨率和尺寸Photoshop CS 的新增功能。 本章难点:矢量图与位图解 本章内容: 第一节基本概念 1、位图图像与矢量图形 2 、分辨率 3 、颜色模型和模式 第二节文件操作

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) \

图像分割 实验报告

实验报告 课程名称医学图像处理 实验名称图像分割 专业班级 姓名 学号 实验日期 实验地点 2015—2016学年度第 2 学期

050100150200250 图1 原图 3 阈值分割后的二值图像分析:手动阈值分割的阈值是取直方图中双峰的谷底的灰度值作为阈值,若有多个双峰谷底,则取第一个作为阈值。本题的阈值取

%例2 迭代阈值分割 f=imread('cameraman.tif'); %读入图像 subplot(1,2,1);imshow(f); %创建一个一行二列的窗口,在第一个窗口显示图像title('原始图像'); %标注标题 f=double(f); %转换位双精度 T=(min(f(:))+max(f(:)))/2; %设定初始阈值 done=false; %定义开关变量,用于控制循环次数 i=0; %迭代,初始值i=0 while~done %while ~done 是循环条件,~ 是“非”的意思,此 处done = 0; 说明是无限循环,循环体里面应该还 有循环退出条件,否则就循环到死了; r1=find(f<=T); %按前次结果对t进行二次分 r2=find(f>T); %按前次结果重新对t进行二次分 Tnew=(mean(f(r1))+mean(f(r2)))/2; %新阈值两个范围内像素平均值和的一半done=abs(Tnew-T)<1; %设定两次阈值的比较,当满足小于1时,停止循环, 1是自己指定的参数 T=Tnew; %把Tnw的值赋给T i=i+1; %执行循坏,每次都加1 end f(r1)=0; %把小于初始阈值的变成黑的 f(r2)=1; %把大于初始阈值的变成白的 subplot(1,2,2); %创建一个一行二列的窗口,在第二个窗口显示图像imshow(f); %显示图像 title('迭代阈值二值化图像'); %标注标题 图4原始图像图5迭代阈值二值化图像 分析:本题是迭代阈值二值化分割,步骤是:1.选定初始阈值,即原图大小取平均;2.用初阈值进行二值分割;3.目标灰度值平均背景都取平均;4.迭代生成阈值,直到两次阈值的灰 度变化不超过1,则稳定;5.输出迭代结果。

基于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爱好者都编写了一些经典的程序,用户直接进行下载就可以用。

在汽车仪表盘中使用高级图形功能

在汽车仪表盘中使用高级图形功能 作者:Michael Staudenmaier 飞思卡尔半导体有限公司,Schatzbogen 7, 81829 Munich,德国 Michael.Staudenmaier@https://www.doczj.com/doc/6b5134403.html, 1 摘要 目前使用的汽车仪表盘表现出一种明显的趋势,即从以前的机电式指针仪表过渡到侧重于图形显示的解决方案。本文将概述目前和未来使用的带有高级图形功能的汽车仪表盘。在这一新兴领域,由于受到电子消费市场中的图形解决方案的影响,用户期望在不断发展,这驱动了市场正在经历快速的演进。以较低的成本同时满足这些用户期望,并达到汽车质量要求是一项挑战,必须采用新的方法和工具来实现。 本文中将分若干个主题介绍仪表盘:用例,图形技术,技术实施和复杂嵌入式系统中的设计决策。由于采用了许多来自PC领域的技术,因此将对这些技术进行简要说明,并介绍它们在嵌入式领域的采用。 将重点介绍图形内容的创建和人机界面,以及该领域的不断演变的工具支持。本文阐述了在嵌入式图形加速器上进行顺利的开发所需要的流程方法和解决方案,从HMI图形开发到优化的移植。 虽然当前的设计侧重于模仿典型的指针式仪表盘,但是本文将展示在高级用户界面设计方面出现的一些新的趋势和可能性。 2 简介 最近几年,传统的机械式汽车仪表盘越来越多地采用电子显示屏。这一演变过程的第一步是引入液晶显示屏来显示里程信息和其他简单的字母数字信息。 由于TFT显示屏价格下降以及相应的计算功能开始应用于嵌入式领域,这使基于图形的解决方案在价格上变得可负担。由于仪表盘是最重要的 HMI组成之一,并且就放在驾驶员面前供其随时查看,因此对于汽车厂商来说是这一个非常重要的差异化特性。对于高端汽车,这将导致汽车厂商在这一领域投入大量资金。目前,TFT显示屏在该领域似乎仍然被驾驶者认为具有附加价值,因为它被认为是一种高科技特性。这导致出现了使用高级的图形技术模拟机械式仪表的情况。尝试新的可能性仅仅是开始,但是在该领域仍然存在巨大的改进空间。参考消费品行业的产品,很显然,良好定义的用户界面如今已成为一个重要的差异化因素。该领域进行优化的总体思路就是以更简单的方式显示更复杂的信息-如何在汽车领域实现这一点,目前还在探索和发展之中。这样做的优点不仅仅体现在技

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为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。 2.含多个输入参数的plot函数

用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; % 显示 格线

图像分割方法总结

医学图像分割理论方法概述 医学图像分割就是一个根据区域间的相似或不同把图像分割成若干区域的过程。目前,主要以各种细胞、组织与器官的图像作为处理的对象,图像分割技术主要基于以下几种理论方法。 1.基于统计学的方法 统计方法是近年来比较流行的医学图像分割方法。从统计学出发的图像分割方法把图像中各个像素点的灰度值看作是具有一定概率分布的随机变量,观察到的图像是对实际物体做了某种变换并加入噪声的结果,因而要正确分割图像,从统计学的角度来看,就是要找出以最大的概率得到该图像的物体组合。用吉布斯(Gibbs)分布表示的Markov随机场(MRF)模型,能够简单地通过势能形式表示图像像素之间的相互关系,因此周刚慧等结合人脑MR图像的空间关系定义M arkov随机场的能量形式,然后通过最大后验概率 (MAP)方法估计Markov随机场的参数,并通过迭代方法求解。层次MRF采用基于直方图的DAEM算法估计标准有限正交混合( SFNM)参数的全局最优值,并基于MRF先验参数的实际意义,采用一种近似的方法来简化这些参数的估计。林亚忠等采用的混合金字塔Gibbs随机场模型,有效地解决了传统最大后验估计计算量庞大和Gibbs随机场模型参数无监督及估计难等问题,使分割结果更为可靠。 2.基于模糊集理论的方法 医学图像一般较为复杂,有许多不确定性和不精确性,也即模糊性。所以有人将模糊理论引入到图像处理与分析中,其中包括用模糊理论来解决分割问题。基于模糊理论的图形分割方法包括模糊阈值分割方法、模糊聚类分割方法等。模糊阈值分割技术利用不同的S型隶属函数来定义模糊目标,通过优化过程最后选择一个具有最小不确定性的S函数,用该函数表示目标像素之间的关系。这种方法的难点在于隶属函数的选择。模糊C均值聚类分割方法通过优化表示图像像素点与C各类中心之间的相似性的目标函数来获得局部极大值,从而得到最优聚类。Venkateswarlu等改进计算过程,提出了一种快速的聚类算法。 2. 1 基于模糊理论的方法模糊分割技术是在模糊集合理论基础上发展起来的,它可以很好地处理MR图像内在的模糊性和不确定性,而且对噪声不敏感。模糊分割技术主要有模糊阈值、模糊聚类、模糊边缘检测等。在各种模糊分割技术中,近年来模糊聚类技术,特别是模糊C - 均值( FCM)聚类技术的应用最为广泛。FCM是一种非监督模糊聚类后的标定过程,非常适合存在不确定性和模糊性特点的MR图像。然而, FCM算法本质上是一种局部搜索寻优技术,它的迭代过程采用爬山技术来寻找最优解,因此容易陷入局部极小值,而得不到全局最优解。近年来相继出现了许多改进的FCM分割算法,其中快速模糊分割( FFCM)是最近模糊分割的研究热点。FFCM算法对传统FCM算法的初始化进行了改进,用K - 均值聚类的结果作为模糊聚类中心的初值,通过减少FCM的迭代次数来提高模糊聚类的速度。它实际上是两次寻优的迭代过程,首先由K - 均值聚类得到聚类中心的次最优解,再由FCM进行模糊聚类,最终得到图像的最优模糊分割。

基于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);

相关主题
相关文档 最新文档