文档视界 最新最全的文档下载
当前位置:文档视界 › matlab图像分割总结报告

matlab图像分割总结报告

matlab图像分割总结报告
matlab图像分割总结报告

课程总结报告

题目:图像分割程序设计

院系电气与电子工程学院

专业 xxxx

班级研电16xx 学号 116xxxxxx 姓名 xx

2016年 11月3日

摘 要:图像分割是图像处理与计算机视觉的基本问题之一,是图像处理图像分析的关键步骤。其中图像二值化又是图像分割的重点。本文对全局和局部阈值二值化法的几种常用的算法和基本自适应阈值二值化进行了综述。每基于一定理论和算法的图像二值化方法都有各自不同的优势和缺点,在实际应用当中应根据不同使用目的和使用标准采取不同的方法以达到最佳效果。本文在MATLAB 编程技术及其GUI 图形用户界面设计的基础上,开发了具有交互式特点的数字图像处理GUI 软件,界面操作简单方便,实现了图像二值化的功能。

关键词:二值化;全局阈值法;局部阈值法;基本自适应阈值法;图像分割; MATLAB GUI

0 引言

图像分割技术作为图像处理领域中极为重要的内容之一,是实现图像分析和理解的基础,而图像二值化又是图像分割的重点。只有在其基础上才能对目标进行特征提取和参数测量,使得更高层的图像分析和理解成为可能。二值化是图像处理和分析的关键技术,也是个经典难题。随着实际应用的需要,对图像二值化进行深入的研究,不断改进原有方法,提出新方法具有重要的意义。

1 图像二值化

二值化是图像处理中的一个重要的问题,广泛应用于图像分割,图像增强,图像识别等领域。根据其运算的范围不同,图像的二值化方法可分为全局阈值方法和局部阈值方法。它利用了图像中要提取的目标物与其背景在灰度特性上的差异,把原图像变为仅用两个灰度值表示的图像目标和背景的二值图像。其处理思想是,假设一副灰度图像中的灰度级范围是(0,255),则图像中每一点像素的灰度值为f(x ,y),f(x ,y)∈{0,1,…,255),设阈值为T(0≤T ≤255)则:

其中:g(x ,y)表示二值化后图像中各个像素点的值,若g(x ,y)=1表示改点为目标;若g(x ,y)=0,表示改点为背景。

2 GUI 设计

图形用于界面(GUI )是提供人机交互的工具和方法。MATLAB 的GUI 为开发者提供了一个不脱离MATLAB 的开发环境,有助于MATLAB 程序的GUI 集成。

本文设计的程序有以下功能:

1)实现图像的读取及显示其灰度直方图功能,保存功能及退出时“是否保存处理后图像”的提醒功能。

2)设计图形用户界面, 让用户能够对图像进行全局阈值分割,可选方法T

),(),(10),(≥

为迭代法、Otsu法及改进的Otsu法,同时显示该方法选取的阈值。

3)设计图形用户界面,让用户能够对图像进行局部阈值分割,可选方法为Bernsen法、Niblack法及改进的Bernsen法,同时关闭选取阈值的显示(因为此时每个像素点均有对应的阈值)。

4)编写程序对图像进行基本自适应阈值分割,即将用户所选取的图像进行分块后对每块图像用Otsu法进行二值化,并实现调整分块大小时实时显示处理后的图像功能。

具体GUI设计的程序代码及模块、菜单配置过程不在此赘述。MATLAB中运行相应的m文件,会出现如下图所示的初始界面:

图2.1 初始界面

可以看到,在图像没有打开之前图像分割功能是不可选的,这是在GUI编程中考虑到为避免对空白图像进行二值化可能会产生全黑图像的错误而设计的。

点击如下选项,可以打开指定图像,并显示其对应的灰度直方图:

图2.2 “打开”图像

现在“图像分割”菜单变为可选,选择相应算法可以得到不同效果的阈值分割结果图,相应可选方法如图:

图2.3 “图像分割”菜单

阈值分割完毕后,点击图标,可以对处理后的图像进行保存。若不保存直接选择“退出”菜单,程序会弹出如下图所示选框,提醒用户是否保存已更改的图片,可以根据用户需求进行选择,同时避免了错误的发生。

图2.4 “保存”与“退出”

3 阈值分割算法与实验分析

3.1 全局阈值分割

全局阈值法根据文本图像的直方图或灰度空间分布确定一个阈值,以此实现灰度文本图像到二值图像的转化。此方法的优点在于算法简单,对目标和背景明显分离、直方图分布呈双峰的图像效果良好,但是由于对整幅图使用一个阈值处理,因此其对输入图像有噪声或不均匀光照等情况抵抗能力差,应用受到极大限制,不能广泛地应用于实际。典型的全局阈值分割方法有迭代法、Otsu方法等。在此引入光照均匀的图3.1和光照不均匀的图3.2,本节将用下述全局阈值方法对其进行处理。

图3.1 原始图像1 图3.2 原始图像2

3.1.1 迭代法

迭代法的主要思想是利用循环迭代的方法 ,逐步逼近最佳阈值 ,其计算步骤主要是:

1) 对图像进行灰度化,找出图像灰度的最大值和最小值,分别记为max R 和 min R ,令初始阈值为:

()2/min max R R T +=

2) 根据当前的阈值T 以及图像的各像素的灰度值,将图像像素分成前景与背景两组。

3) 分别求出当前前景与背景两组像素的平均灰度值,记为1u 和2u 。

4) 求出新阈值:

()2/21u u T +=

循环2)-4)步,直到两组的平均灰度值不再发生新的变化,此时即获得了所需要的阈值。这种方法运算很简单,因此处理图片的速度是很快的。处理光照均匀的图3.1后,得到阈值为0.5312的图3.3,可以看到效果还是比较好的;但是在处理光照不均匀的原图3.2后,得到阈值为0.49393的图3.4,可见只使用一个阈值,已经没有办法兼顾到所有细节情况了。

图3.3 迭代法处理图1 图3.4 迭代法处理图2

3.1.2 Otsu 方法

二值化的算法之一Otsu 法,也称大津法,是全局二值化算法的经典算法之

一。它是1979年由Otsu 提出的,其基本思想是求取最佳门限阈值,此阈值将图像灰度直方图分割成黑白(前景与背景)两部分,使两部分类间方差取得最大值,并使类内方差值最小,即类间分离性最大,而类内的相似性最大,因此,Otsu 法也称最大类间方差法。对于某图像的灰度直方图,设T 为区分前景灰度与背景灰度的二值化阈值,设0w 为前景像素所占图像总像素的比例,令0u 为所有前景像素的平均灰度,设1w 为背景点数所占图像总像素的比例,令1u 为所有背景像素的平均灰度,则图像的所有像素的平均灰度为1100u w u w u +=。在进行程序运

算时,T 的取值可从图像的最小灰度值到图像的最大灰度值依次遍历,当T 取某值时,类间方差公式()()2

11200w b u u w u u -+-=能取得最大,此时T 即为二值化的最佳阈值。使类间方差最大的二值化意味着错分概率最小。

同样,我们采用Otsu 算法对图3.1和图3.2进行处理,分别得到图3.5和图3.6。图3.5所选阈值为0.49804,可以看到效果依旧很好;图3.4所选阈值为0.49412,效果很不理想。

图3.5 Otsu 法处理图1 图3.6 Otsu 法处理图2

3.1.3 改进的Otsu 方法

图像二值化是建立在物体和背景可以区分的基础上的,如亮度色调等不同,从而根据这些已知信息分出前背景。而一般的全局二值化如用Otsu 方法获取最优阈值的方法,都是建立在图像前背景亮度有一定差距的基础上的,即图像直方图有双峰结构。如果对于一幅亮度不均匀的图像这种方法就不适用,解决的方法可以把图像根据整体亮度变化来分成若干小区域,而各区域的直方图中有两个峰,这样就能自适应得时整幅图都比较好的二值化。但是,这样对于一些复杂的图像就难处理,而且可能存在分块邻接缺陷,因此,本程序中先将整幅图的亮度调均匀,然后再用整体二值化就能得到很好的结果。这里使用Retinex 算法把图像的整体亮度调均匀后(此法能很好得将各种照度不均的图调整成直方图中明显有双峰的均匀图),再用Otsu 方法取阈值二值化。对光照不均匀图3.2进行处理,得到图3.7,可见此时的图像轮廓得到了还原,取得了较好效果。

图3.7 改进的Otsu 法处理图1

3.1.4 全局阈值法小结

下面,我们对全局阈值法做一些总结。一般说来,全局阈值法想法都比较简单,实现起来也很高效简单,但这种也是有代价的。它的适用范围相对有限,擅长处理简单图像,比如目标与背景明显分离的,直方图分布呈双峰的图像。但是对于光照不均,模糊的文档及多边缘的图像,就会丢失很多的信息。在此引入文本图像图3.8。可以看到下半部分是清晰的文字,但是上半部分的表格,则具有淡淡的底,使得字迹看起来变淡了,也就是说模糊了。由于Otsu算法在全局阈值二值化方法中具有很好的评价,在这里仅使用法对其进行处理,来看一看效果。

图3.8 原始图像3

使用Otsu方法处理图3.8,所得阈值为0.7451,处理结果为图3.9。可以看到,图中下半部分还是比较清楚的,但是上半部分表中的文字显示很不理想。对于这种光照均匀地图像,改进的Otsu方法处理结果如图3.10,其细节丢失更为严重。这正是全局阈值二值化的简单性所付出的代价。由于该类方法只关心整幅图像的灰度值分布特征,然后就迅速进行处理它是高度宏观化的,因而对于局部的变化反映不够灵敏。因此,使用该方法会丢失图像的许多细节信息。

图3.9 Otsu法处理图2

图3.10 改进的Otsu 法处理图2

由于全局阈值法的这一缺点,引出了关注细节的局部阈值二化算法。

3.2 局部阈值分割

局部阈值法通过定义考察点的邻域,比较考察点与其邻域的灰度值来确定当前考察点的阈值。非均匀光照条件等情况虽然影响整体图像的灰度分布却不影响局部的图像性质,使得局部阈值法较全局阈值法有更广泛的应用。局部阈值法虽然能够根据局部灰度特性来自适应地选取阈值,有较大的灵活性,但局部阈值存在速度慢,对文本图像进行二值化处理时,可能导致出现笔画断裂现象以及伪影等问题,直接影响后面的识别工作。常用的局部阈值法有Bernsen 算法、Niblack 算法。

3.2.1 Bernsen 算法

Bernsen 算法是一种典型的局部阈值算法,其将窗口中各个像素灰度级最大值和最小值的平均值作为一个窗口的中心像素的阈值,因此此方法不存在预定阈值,适应性较全局阈值法广,不受非均匀光照条件等情况的影响。

设图像在像素点(i ,j)处的灰度值f(i ,j),考虑以像素点(i ,j)为中心的()()1212+?+ωω窗口,则Bernsen 算法可以描述为:

()????

? ??+++++=≤≤-≤≤-≤≤-≤≤-),(),(21,min max m j m i f m j m i f j i T n m n m ωωωωωωωω 图像中各个像素点(i ,j)的阈值T 对图像中各个像素点(i ,j)用b(i ,j)值逐点进行二值化:

j)

T (i,),(),(),(1

0),(≥

在实现算法的过程中会遇到一个不可避免的问题。当一个像素点处于整幅图像的边界处,或是其他距图像边界不足一个像素点单位的位置时,若以它为中心取的小块,那么所取得的小块就会有一部分是缺失的。这里,本文选取的处理方式是对原图像加边,新的边灰度值全赋值为0。

在使用Bernsen算法进行图像二值化的时候,是需要选择窗口的大小的,现在结合算法来具体讨论该因素的影响。从Bernsen算法求局部阈值公式来看,对于一个固定的像素点(x,y),当窗口尺度很小的时候,该像素点周围有细微的明暗变化即有少量像素点的灰度变化就会影响到阈值的选取;当窗口尺度变大的时候,更多的像素点会进入到窗口中,原窗口内的像素点只是现在的一部分,对于阈值所产生的影响就相对弱化了,原有的细节就有可能丢失。现引入一幅光照不均但像素点相对较少的图 3.11,这样改变窗口大小进行测试时可以节约程序运行时间。

图3.11 原始图像4

现取窗口为3*3,效果如图3.12所示。图中出现了大量斑点噪声,文字被淹没了。这是因为窗口选得太小,二值化时像素点附近出现的细微明暗变化都被

图3.12 Bernsen法处理图1 图3.13 Bernsen法处理图2

识别出来了。将窗口放大为9*9,效果见图3.13。可以看到,效果好多了,许多斑点状噪声消失了,文字变得清楚了,但是字间噪声没有完全消除且粗笔状况也比较明显的。查阅相关文献表明,应该选取15*15的窗口,原因是这样所带来的噪声会显著的减少。同时,处理图片的时间则相应增加。鉴于此,在此后的处理中,大多取窗口为15*15。对于Bernsen法取窗口为15*15,所得的结果如图3.14。

图3.14 Bernsen法处理图3

下面对图3.8用Bernsen法进行二值化,看看效果如何。如图3.15,与Otsu 法处理图2相比,列表中的文字变得相对清晰了,但是列表下方的文字出现了断笔现象,而且背景噪声问题同样不能忽视。

图3.15 Bernsen法处理图5

3.2.2 Niblack算法

Niblack方法也是一种应用很广泛的二值化算法。它根据局部均值和局部标

准差,确定图像中不同的阈值。在像素点(x,y)的阈值的计算是:

x

y

k

m

x

+

T?

s

y

=

)

x

,

)

,

(

(y

,

)

(

其中T(x,y)为阈值,m(x,y)为样本均值,s(x,y)为标准差,k为参数。对于邻域的选择需要满足能保存局部细节同时抑制噪声的产生。和Bernsen方法相似,使用Niblack方法进行图像二值化处理时,窗口大小的选择也是很重要的。理由相同,如果窗口选得很小,处理速度比较快,但是给二值图带来的噪声也是很严重的,导致前景淹没在噪声中,无法很容易的辨识;如果窗口选得大,会大幅地降低二值图中的噪声,但是处理的时间也变得更长了。窗口一般也取15*15,下面对图3.8进行分割,结果见图3.16。

图3.16 Niblack法处理图1

使用Niblack方法进行图像二值化处理,由于需要计算标准差,需要进行平方开方运算,所以速度是比较慢的,我们看一下Bernsen方法,它比方法的速度要快些。但是从处理效果来看,它比Otsu法和Bernsen法效果优秀。不仅列表中文字细节得到了很好地还原,列表下方的文字也没出现断笔现象,很清晰,唯一需要改善的就是图像背景噪声问题。

3.2.3 对局部阈值法的一点思考

由于局部阈值法充分考虑到了每一个像素点及其附近像素点的灰度分布情况,能兼顾图像的细节变化,因此使用局部阈值二值化方法对图像进行分割处理,一般说来,会得到更好的效果。很容易这么想,如果对一幅质量很好的图片进行二值化分割,那么局部阈值法对其进行分割所得的效果应该比全局阈值法的效果好,即使不能更好,至少一样好。现在看一个例子,引入图3.17,它足够简单,背景与前景相比分离得很明显。图3.18是使用Otsu方法进行阈值分割的结果,

图3.17 原始图像5

图3.18 Otsu算法处理图3 图3.19 Niblack算法处理图2

而图3.19是使用Niblack法进行阈值分割的结果。局部阈值法处理效果在这里反而的质量却降低了,它把没有文字的空白背景,错误地识别成文字像素点。能对付复杂问题的工具,却不能处理简单的。回头看Bernsen法和Niblack法阈值分割处理的结果图3.15~3.16,也存在相同问题。表格右侧空白背景,以及没有足够文字填充的一小段空白行,都被错误地识别成了前景。这说明,这个问题应该不是偶然出现的,可能是一个共性的问题。为了避免出现这种情况,在进行图像二值化处理时,当每选取一个小窗口,就应该先进行判定。如果这个小窗口内同时混有前景和背景,那么就进行该中心点的二值化;否则,小窗口内就只含有前景或是只有背景,就不应该进行阈值分割了,而应该采取一种方法去判断它是属于背景还是前景。至于具体实现方案,这也是未来对局部阈值分割进行进一步研究的方向。

3.3 基本自适应阈值分割

全局阈值存在的问题是不均匀亮度无法有效分割,解决办法除了像局部阈值法对图像每一个像素进行处理外,还可以将整幅图像化整为零,划分为许多个小块,分别进行处理,得到它的阈值。小块特点是彼此分离没有重叠,这也是与局部阈值法的区别。那么这个阈值相对于整体的全局阈值来说,就是与相应小块中的像素更加关联的,对于局部应该也是更好的。其中每一个小块,可以简单的将

它看作一幅图像,这样,要得到与这个小块相关的局部阈值,可以简单地使用全局阈值值法来对每个小块做出处理,进行二值化。

我们将图像划分成许多小块,如果称小块的长和宽为尺度的话,那么选取时,若尺度太大,对图像的局部还不够好;但是若尺度太小,小块内可能就只有前景或只有背景了,此时的二值化是不合理的。所以,给小块选择一个合适的尺度是很讲究的,本文目前只能通过不断尝试来确定。现引入图 3.20,对其进行基本自适应阈值分割。

图3.20 原始图像6 图3.21 基本自适应阈值处理图1 经过尝试,现选用处理效果较好的115*115的分块对图3.20进行处理,所得结果如图3.21所示。我们发现,对于这种水平方向上光照不均的图像的处理,原图的细节得到了很好的保留,其处理效果还是很不错的。

事实上,一幅图划分成的子块是图像的一部分,它们的阈值应该是有所关联的。如果就这样一个个孤立开的话,就会发生阈值灰度跃变的问题,即由于每一个小块内的各自阈值都相差很大,可能导致块与块交界处的图像像素灰度值不连续,出现明显间断或不一致。解决办法有两个:要么对这些边界处的像素点做出处理,要么对这些阈值做出处理。具体实现办法还没有一个清晰的框架,只能等课程结束以后对其进行进一步的研究和学习。

4 结束语

本文利用不同算法对不同图像进行了阈值分割处理,对处理所得到的二值图进行了比较。对于一些简单图像,全局阈值法能很好的保持原图的主要信息,且实现简单、运行速度快,但对复杂图像的处理效果不佳。对于光照不均或较复杂的图像,局部阈值法可以保留更多细节,但是背景噪声比较严重,且运行速度较慢。基本自适应阈值方法也能对光照不均的图像进行处理,但是分块大小的确定还没有一个准则,只能称之为半自适应阈值分割。实践工作中遇到的需要进行二值化的图像是纷繁复杂的,上面提到的算法尚有许多方面可以改善。本次程序设计,无论在数字图像处理的理论知识还是MATLAB软件中GUI的掌握上还是对算法的编程实现上,都有了更深刻的了解与进步。并且对图像处理有了很大的兴趣,希望在今后的学习中能够更加深入的学习。

基于Matlab的彩色图像分割

用Matlab来分割彩色图像的过程如下: 1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径; 2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现; 3)对ab分量进行Kmean聚类。调用函数kmeans()来实现; 4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。Matlab程序源码 %文件读取 clear; clc; file_name = input('请输入图像文件路径:','s'); I_rgb = imread(file_name); %读取文件数据 figure(); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = applycform(I_rgb, C); %进行K-mean聚类将图像分割成3个区域 ab = double(I_lab(:,:,2:3)); %取出lab空间的a分量和b分量 nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); nColors = 3; %分割的区域个数为3 [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3); %重复聚类3次 pixel_labels = reshape(cluster_idx,nrows,ncols); figure(); imshow(pixel_labels,[]), title('聚类结果'); %显示分割后的各个区域 segmented_images = cell(1,3); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors color = I_rgb; color(rgb_label ~= k) = 0; segmented_images{k} = color;

基于MATLAB的图像分割方法及应用

安徽财经大学 (《图像处理》课程论文) 题目:图像分割算法研究——基于分水岭分割法的彩色图像分割学院:管理科学与工程学院 专业:电子信息工程 姓名:万多荃 学号:20123712 电话: 任课教师:许晓丽 论文成绩: 2015年10月

目录 摘要 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。

本文根据图像分割原理及人眼视觉的基本理论,研究图像的彩色模型及图像分割的常用方法,比较各方法的特点,并选择合适的方法对图像进行分割。本文采用MATLAB软件对图像进行彩色坐标变换及阈值分割,计算简单,具有较高的运行效率,分割的结果是使图像更符合人眼的视觉特性,获得比较好的效果。 关键字:图像处理;图像分割;人类视觉;MATLAB 1.前言 1.1图像分割技术 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。 图像数据的模糊和噪声的干扰是分割问题的两大难题。到目前为止,还没有一个完美的图像分割方法,可以根据人的意愿精确地分割任何一种图像。现实图像中景物情况各种不同,具体问题需具体分析,按照实际情况选择得当的方法。分割成果的好坏或正确与否,到现在为止,尚无一个统一的评价和判断标准,分割的好坏务必从分割的效果和现实应用的场合来判断。然而,在人类研究图像的历史长河中,仍然积累了许多经典的图像分割方法。固然这些分割方法不可以适应全部种类的图像分割,可是这些方法却是图像分割方法进一步发展的根基。实际上,当代一些分割算法恰巧是从经典的图像分割方法中产生出来的。图像分割法大致可以分为三个种:边缘检测法,阈值分割法和基于区域的图像分割法。 2研究目的 视觉是人类最高级的感知器官,所以图像在人类感知中承担着非常重要的角色,这是毋庸置疑的。 本文的主要研究目的是对图像的分割方法进行研究,选择适合本论文的设计方法,然后通过对图像的分割,以达到人眼的最佳视觉效果。 本课题主要是通过对人眼的视觉系统研究,然后选择与人眼视觉系统密切相关的颜色模型进行颜色空间模型之间的相互转换,再对图像分割方法进行比较选择合适的分割方法,通过MATLAB平台实现彩色图像分割,最后对分割后的图像进行比较来获得到最佳的视觉效果。

基于MATLAB的图像阈值分割技术

基于MATLAB 的图像阈值分割技术 摘要:本文主要针对图像阈值分割做一个基于MATLAB 的分析。通过双峰法,迭代法以及OUTS 法三种算法来实现图像阈值分割,并且就这三种算法做了一定的分析和比较,在加椒盐的图片上同时进行三种实验,做出比较,最终得出实践结论。 关键词:图像分割 MATLAB 阈值分割 算法 引言:图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提.同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准,图像阈值分割即是其中的一种方法。 阈值分割技术因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术,已被应用于很多的领域,在很多图像处理系统中都是必不可少的一个环节。 1、阈值分割思想和原理 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T 进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体内部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的 设图像为f(x,y),其灰度集范围是[0,L],在0和L 之间选择一个合适的灰度阈值T ,则图像分割方法可由下式描述: 这样得到的g(x,y)是一幅二值图像。 (一)原理研究 图像阈值分割的方法有很多,在这里就其中三种方法进行研究,双峰法,迭代法,以及OUTS 法。 方法一:双峰法 T y x f T y x f y x g ≥<),(),(10){,(

部分图像分割的方法(matlab)

部分图像分割的方法(matlab)

大津法: function y1=OTSU(image,th_set) image=imread('color1.bmp'); gray=rgb2gray(image);%原图像的灰度图 low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]); % subplot(224);imshow(gray);title('after adjust'); count=imhist(gray); [r,t]=size(gray); n=r*t; l=256; count=count/n;%各级灰度出现的概率 for i=2:l if count(i)~=0 st=i-1; break end end %以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1 if count(i)~=0; nd=i-1; break end end %实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1); p=st;q=nd-st;%p和分别是灰度的起始和结束值 u=0; for i=1:q; u=u+f(i)*(p+i-1); ua(i)=u; end

程序二: clc; clear; cd 'D:\My Documents\MATLAB' time = now; I = imread('qr4.bmp'); figure(1),imshow(I),title('p1_1.bmp'); % show the picture I2 = rgb2gray(I); figure(2),imshow(I2),title('I2.bmp'); %?D?μ??2¨ J = medfilt2(I2); figure(3),imshow(J); imwrite(J,'J.bmp'); [M N] = size(J); J1 = J(1:M/2,1:fix(N/2)); J2 = J(1:M/2,fix(N/2)+1:N); J3 = J(M/2+1:M, 1:fix( N/2)); J4 = J(M/2+1:M, fix(N/2)+1:N); % figure(4), img = J1; T1 = test_gray2bw( img ); % figure(5), img = J2; T2 = test_gray2bw( img ); % figure(6), img = J3; T3 = test_gray2bw( img ); % figure(7), img = J4; T4 = test_gray2bw( img ); T = [T1,T2;T3,T4]; figure,imshow(T) % T1 = edge(T,'sobel'); % figure,imshow(T1); % BW = edge(T,'sobel'); % f igure,imshow(BW); function [bw_img] = test_gray2bw( img ) %大津法 [row_img col_img ] = size( img ) all_pix = row_img * col_img % get probability of each pixel(????). count_pix = zeros(1,256) % pro_pix = [] for i = 1 : 1 : row_img for j = 1 : 1 : col_img count_pix(1,img(i,j)+1) = count_pix(1,img(i,j)+1) + 1 %í3??′?êy end en d pro_pix = count_pix / all_pix % choose k value; max_kesi = -1 T = 0 for k = 1 : 1 : while( i <= k ) wa = wa + pro_pix(1,i+1) %?°k??i£?????????μ??ò?è???ê£????êoí ua = ua + i * pro_pix(1,i+1) i = i + 1 end

基于Matlab的彩色图像分割

3 Matlab编程实现 3.1 Matlab编程过程 用Matlab来分割彩色图像的过程如下: 1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径; 2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现; 3)对ab分量进行Kmean聚类。调用函数kmeans()来实现; 4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。3.2 Matlab程序源码 %文件读取 clear; clc; file_name = input('请输入图像文件路径:','s'); I_rgb = imread(file_name); %读取文件数据 figure(); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = applycform(I_rgb, C); %进行K-mean聚类将图像分割成3个区域 ab = double(I_lab(:,:,2:3)); %取出lab空间的a分量和b分量 nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); nColors = 3; %分割的区域个数为3 [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3); %重复聚类3次 pixel_labels = reshape(cluster_idx,nrows,ncols); figure(); imshow(pixel_labels,[]), title('聚类结果'); %显示分割后的各个区域 segmented_images = cell(1,3); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors

部分图像分割的方法(matlab)

大津法: function y1=OTSU(image,th_set) image=imread('color1.bmp'); gray=rgb2gray(image);%原图像的灰度图 low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]); % subplot(224);imshow(gray);title('after adjust'); count=imhist(gray); [r,t]=size(gray); n=r*t; l=256; count=count/n;%各级灰度出现的概率 for i=2:l if count(i)~=0 st=i-1; break end end %以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1 if count(i)~=0; nd=i-1; break end end %实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1); p=st;q=nd-st;%p和分别是灰度的起始和结束值 u=0; for i=1:q; u=u+f(i)*(p+i-1); ua(i)=u; end

%计算图像的平均灰度值 for i=1:q; w(i)=sum(f(1:i)); end %计算出选择不同k的时候,A区域的概率 d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差[y,tp]=max(d);%求出最大方差对应的灰度级 th=tp+p; if thth) y1(i,j)=x1(i,j); else y1(i,j)=0; end end end %上面一段代码实现分割 % figure,imshow(y1); % title('灰度门限分割的图像');

基于MATLAB的图像分割算法研究毕业设计

基于MA TLAB的图像分割算法研究 基于MATLAB的图像分割算法研究 摘要 本文从原理和应用效果上对经典的图像分割方法如边缘检测、阈值分割技术和区域增长等进行了分析。对梯度算法中的Roberts算子、Sobel算子、Prewitt算子、拉普拉斯(Laplacian)算子、LoG(Laplacian-Gauss)算子、坎尼(Canny)算子的分割步骤、分割方式、分割准则相互比较可以看出根据坎尼(Canny)边缘算子的3个准则得出的边缘检测结果最满意。而阈值分割技术的关键在于阈值的确定,只有阈值确定好了才能有效的划分物体与背景,但这种方法只对于那些灰度分布明显,背景与物体差别大的图像的分割效果才明显。区域增长的基本思想是将具有相似性质的像素集合起来构成新区域。与此同时本文还分析了图像分割技术研究的方向。 关键词:图像处理图像分割 Abstract This article analyses the application effect to the classics image segmentation method like the edge examination, territory value division technology, and the region growth and so on.For comparing the Roberts operator, Sobel operator, Prewitt operator, the operator of Laplacian and the operator of LoG(Laplacian-Gauss),Canny operator in gradient algorithm,the step, the way and the standard of the image segmentation,we can find out the three standard of Canny edge operator the edge detection result of reaching most satisfy. And the key point of threshold segmentation lie in fixing the threshold value, it is good to have only threshold value to determine it then can be effective to divide object and background,but this kind of method is good to those gray scales,the big difference image effect between the background and obiect. The basic idea of area is to form the new region from similar nature.And also, this paper analyses the research direction of image segmentation technology at the same time. Key words: image processing image segmentation operator

两个matlab实现最大熵法图像分割程序

%两个程序,亲测可用 clear all a=imread('moon.tif'); figure,imshow(a) count=imhist(a); [m,n]=size(a); N=m*n; L=256; count=count/N;%%每一个像素的分布概率 count for i=1:L if count(i)~=0 st=i-1; break; end end st for i=L:-1:1 if count(i)~=0 nd=i-1; break; end end nd f=count(st+1:nd+1); %f是每个灰度出现的概率 size(f) E=[]; for Th=st:nd-1 %%%设定初始分割阈值为Th av1=0; av2=0; Pth=sum(count(1:Th+1)); %%%第一类的平均相对熵为 for i=0:Th av1=av1-count(i+1)/Pth*log(count(i+1)/Pth+0.00001); end %%%第二类的平均相对熵为 for i=Th+1:L-1 av2=av2-count(i+1)/(1-Pth)*log(count(i+1)/(1-Pth)+0.00001); end E(Th-st+1)=av1+av2; end position=find(E==(max(E))); th=st+position-1

for i=1:m for j=1:n if a(i,j)>th a(i,j)=255; else a(i,j)=0; end end end figure,imshow(a); %%%%%%%%%%%%%%%%%%%%%2-d 最大熵法(递推方法) %%%%%%%%%%% clear all; clc; tic a=imread('trial2_2.tiff'); figure,imshow(a); a0=double(a); [m,n]=size(a); h=1; a1=zeros(m,n); % 计算平均领域灰度的一维灰度直方图 for i=1:m for j=1:n for k=-h:h for w=-h:h; p=i+k; q=j+w; if (p<=0)|( p>m) p=i; end if (q<=0)|(q>n) q=j; end a1(i,j)=a0(p,q)+a1(i,j); end end a2(i,j)=uint8(1/9*a1(i,j)); end

基于MATLAB的图像分割处理

学号:2011 —2012学年第 1 学期 专业综合课程设计报告 课题:基于MATLAB的图像分割处理 专业:通信工程 班级: 姓名: 指导教师: 成绩: 电气工程系 2011年11月16日

课程设计任务书 学生班级学生姓名:学号: 设计课题:基于MATLAB的图像分割处理 起止日期:2011.11.06—2011.11.16 指导教师: 设计要求: 本设计对图像分割中的小波变换进行了较为详细的综述。简要介绍医学图像分割的研究目的和意义,给出医学图像分割的基本方法及步骤。在对医学图像分割问题的起源、发展和研究现状进行简要综述的基础上,介绍该领域当前的研究热点及论文的主要研究内容。

图像分割是一种重要的图像分析技术。对图像分割的研究一直是图像技术 研究中的热点和焦点。图像分割是一个很关键的图像分析技术,是由图像处理 进到图像分析的关键步骤.它的目的就是把图像中感兴趣的那部分分割出来供 大家研究、处理和分析,一直都是图像技术研究中的热点。但是由于地域的差别,图像分割一直都没有一个比较通用的算法。 而对图像进行分割的方法有多种,阈值法是其中的一种简单实用的方法。本文主要对阈值法和matlab进行研究,并将它们结合起来以提高图像分割的准确性。本文的主要研究内容如下: 1) 分析了阈值分割方法近年来的新进展,并分析了图像阈值分割中的某些经典方法,如全局阈值方法、局部阈值方法、动态阈值方法等。2)讨论了matlab的主要应用及其特点。3) 将matlab应用于阈值分割,并做实验将其实现。 本次的设计报告首先介绍了双峰法以及最大类方差自动阈值法,然后重点介绍一种基于小波变换的图像分割方法,该方法先对图像的灰度直方图进行小波多尺度变换,然后从较大的尺度系数到较小的尺度系数逐步定位出灰度阈值。最后,对这几种算法的分割效果进行了比较。实验结果表明, 本设计能够实时稳定的对目标分割提取,分割效果良好。医学图像分割是医学图像处理中的一个经典难题。图像分割能够自动或半自动描绘出医学图像中的解剖结构和其它感兴趣的区域,从而有助于医学诊断。 关键词:小波变换;图像分割;阈值

图像分割技术与MATLAB仿真知识讲解

图像分割技术与M A T L A B仿真

中南民族大学 毕业论文(设计) 学院: 计算机科学学院 专业: 自动化年级:2012 题目: 图像分割技术与MATLAB仿真 学生姓名: 高宇成学号:2012213353 指导教师姓名: 王黎职称: 讲师 2012年5月10日

中南民族大学本科毕业论文(设计)原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 作者签名:年月日

目录 摘要 0 Abstract 0 引言 (2) 1 图像分割技术 (3) 1.1 图像工程与图像分割 (3) 1.2 图像分割的方法分类 (4) 2 图像分割技术算法综述 (5) 2.1 基于阈值的图像分割技术 (5) 2.2边缘检测法 (6) 2.3 区域分割法 (8) 2.4 基于水平集的分割方法 (9) 2.5 分割算法对比表格 (9) 3基于水平集的图像分割 (11) 3.1 水平集方法简介 (11) 3.2 水平集方法在图像分割上的应用 (12) 3.3 仿真算法介绍 (13) 3.4 实验仿真及其结果 (14) 结论 (22) 致谢 (23) 参考文献 (23)

图像分割技术研究及MATLAB仿真 摘要:作为一项热门的计算机科学技术,图像分割技术已经在我们生活中越来越普及。顾名思义这项技术的目的就是,将目标图像从背景图像中分离出去。由于这些被分割的图像区域在某些属性上很相近,因此图像分割与模式识别以及图像压缩编码有着密不可分的关系。完成图像分割所采用的方法各式各样,所应用的原理也不同。但他们的最终目的都是把图像中性质相似的某些区域归为一类,把性质差异明显的不同区域分割开来。通常在分割完成之后,我们就要对某些特定区域进行分析、计算、评估等操作,因而分割质量的好坏直接影响到了下一步的图像处理[1],因此图像分割是图像处理的一个关键步奏。图像分割技术在各个领域都有着及其重要的意义;在工业上有卫星遥感,工业过程控制监测等等;在医学方面,水平集的分割方法还可以通过医学成像帮助医生识别模糊的病变区域;在模式识别领域还可应用到指纹扫描、手写识别、车牌号识别等等。 本课题的研究内容是对图像分割技术的几种常用的方法进行综述和比较,并基于其中一种方法进行MATLAB仿真测试,给出性能分析比较结果。 关键字:图像分割,MATLAB仿真,模式识别 Image Segmentation and Matlab Simulation Abstract:Image segmentation is to image representation for the physically meaningful regional connectivity set, namely according to the prior knowledge of target and background, we on the image of target and background of labeling and localization, then separate the object from the

车牌图像分割matlab代码

图像分割matlab代码 作者:佚名发布时间:2010-1-1 阅读次数:498 字体大小: 【小】【中】【大】 % This is a program for extracting objects from an image. Written for vehicle number plate segmentation and extraction % Authors : Jeny Rajan, Chandrashekar P S % U can use attached test image for testing % input - give the image file name as input. eg :- car3.jpg clc; clear all; k=input('Enter the file name','s'); % input image; color image im=imread(k); im1=rgb2gray(im); im1=medfilt2(im1,[3 3]); %Median filtering the image to remove noise% BW = edge(im1,'sobel'); %finding edges [imx,imy]=size(BW); msk=[0 0 0 0 0; 0 1 1 1 0; 0 1 1 1 0; 0 1 1 1 0; 0 0 0 0 0;]; B=conv2(double(BW),double(msk)); %Smoothing image to reduce the number of connected components L = bwlabel(B,8);% Calculating connected components mx=max(max(L)) % There will be mx connected components.Here U can give a value between 1 and mx for L or in a loop you can extract all connected components % If you are using the attached car image, by giving 17,18,19,22,27,28 to L you can extract the number plate completely. [r,c] = find(L==17); rc = [r c]; [sx sy]=size(rc);

用matlab实现自适应图像阈值分割最大类方差法代码

%用matlab实现自适应图像阈值分割最大类方差法代码clear; warning off; SE = strel('diamond',4); BW1 = imread('cameraman.tif'); BW2 = imerode(BW1,SE); BW3 = imdilate(BW2,SE); BW4 = BW1-BW3; %rgb转灰度 if isrgb(BW4)==1 I_gray=rgb2gray(BW4); else I_gray=BW4; end figure,imshow(I_gray); I_double=double(I_gray);%转化为双精度 [wid,len]=size(I_gray); colorlevel=256; %灰度级 hist=zeros(colorlevel,1);%直方图 %threshold=128; %初始阈值 %计算直方图 for i=1:wid for j=1:len m=I_gray(i,j)+1; hist(m)=hist(m)+1; end end hist=hist/(wid*len);%直方图归一化 miuT=0; for m=1:colorlevel miuT=miuT+(m-1)*hist(m); end xigmaB2=0; for mindex=1:colorlevel threshold=mindex-1; omega1=0; omega2=0; for m=1:threshold-1 omega1=omega1+hist(m); end omega2=1-omega1; miu1=0; miu2=0; for m=1:colorlevel if m

基于MATLAB的数字图像分割的研究与实现

本科毕业论文(设计) 题目:基于MATLAB的数字图像分割的研究与实现 学院:计算机与信息工程学院学生: 学号: 专业: 年级: 完成日期:2012 年04 月 指导教师:

基于MATLAB的数字图像分割的研究与实现 摘要:视觉和听觉是我们认识和感知外部世界的主要途径,而视觉又是其中最重要的,因此要想更细致、全面地把握这些图像信息就需要对其进行必要的处理。在数字图像处理的研究和应用中很多时候我们只对图像的某些部分和特征感兴趣,此时就需要利用图像分割技术将所需的目标与图片的其他部分区分开,以供我们对图像进一步研究和分析。图像分割即通过一些必要的算法把图像中有意义的部分或特征提取出来,将图像分为若干有意义的区域,使得这些区域对应图像中的不同目标,进而能够对所感兴趣的区域进行研究。基于图像分割技术在图像处理之中的重要性,本研究在此对图像分割的一些经典算法进行了学习和对比,并通过MATLAB对其进行了实验,通过不同的算法对不同的图片进行处理,分析其优缺点,以便在进行图像分割时可以根据图片的特征选择合适的算法。 关键字:数字图像;分割;MATLAB

The Research and Implementation of Digital Image Segmentation Based on the MATLAB Abstract : Vision and auditory are the main ways which we use to understand and perceive the world outside, while vision is the most important. Therefore, it's require to process the image data to grasp them more painstaking and completely. In digital image processing of research and application we are only interested to some parts of the image and characteristic in many times, then you need to use the image segmentation technology to separate the goal and the picture for other parts for our further research and analysis of the image.Image segmentation is dividing the image into some significant areas through some necessary algorithms, then make these areas corresponding to different goals and we can do some research about the areas we are interested to. Based on the importance of image segmentation technology in image processing, I compared several classical algorithms of image segmentation. In the meanwhile, I used the MATLABto do some research and to process the various images with different algorithms so that it's convinent to find the advantages of these algorithms. Then, I can base on the characteristics of the images to choose the suitable algorithms when to make some digital image segmentation. Key words : D igital Image; Segmentation; MATLAB

数字图像灰度阈值的图像分割技术matlab

1.课程设计的目的 (1)使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各 种因素对分割效果的影响 (2)使用Matlab软件进行图像的分割 (3)能够进行自行评价各主要算子在无噪声条件下和噪声条件下的分割 性能 (4)能够掌握分割条件(阈值等)的选择 (5)完成规定图像的处理并要求正确评价处理结果,能够从理论上做出合 理的解释 2.课程设计的要求 (1)能对图像文件(bmp,jpg,tiff,gif)进行打开,保存,退出等功能操作 (2)包含功能模块:图像的边缘检测(使用不同梯度算子和拉普拉斯算子)(3)封闭轮廓边界 (4)区域分割算法:阈值分割,区域生长等

3.前言 3.1图像阈值分割技术基本原理 所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提。同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准]5[。 在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这些部分称为目标或前景(其他部分称为背景),他们一般对应图像中特定的、具有独特性质的区域。为了辨识和分析目标,需要将他们分离提取出来,在此基础上才有可能对目标进一步利用。图像分割就是指把图像分成格局特性的区域并提取出感兴趣目标的技术和过程。这里特性可以是象素的灰度、颜色、纹理等,预先定义的目标可以对应单个区域,也可以对应多个区域。现有的图像分割算法有:阈值分割、边缘检测和区域提取法。本文着重研究基于阈值法的图像分割技术。 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体内部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的

基于某matlab车牌地定位与分割识别程序

基于Matlab的车牌定位与分割 经典算法 I=imread('car.jpg'); %读取图像 figure(); subplot(3,2,1),imshow(I), title('原始图像'); I1=rgb2gray(I);%转化为灰度图像 subplot(3,2,2),imshow(I1),title('灰度图像'); I2=edge(I1,'robert',0.09,'both');%采用robert算子进行边缘检测

subplot(3,2,3),imshow(I2),title('边缘检测后图像'); se=[1;1;1]; %线型结构元素 I3=imerode(I2,se); %腐蚀图像 subplot(3,2,4),imshow(I3),title('腐蚀后边缘图像'); se=strel('rectangle',[25,25]); 矩形结构元素 I4=imclose(I3,se);%图像聚类、填充图像subplot(3,2,5),imshow(I4),title('填充后图像');

I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分subplot(3,2,6),imshow(I5),title('形态滤波后图像'); [y,x,z]=size(I5); I6=double(I5); Y1=zeros(y,1); for i=1:y for j=1:x

if(I6(i,j,1)==1) Y1(i,1)= Y1(i,1)+1; end end end [temp MaxY]=max(Y1); figure(); subplot(3,2,1),plot(0:y-1,Y1),title('行方向像素点灰度值累计和'),xlabel('行值'),ylabel('像素'); %求的车牌的行起始位置和终止位置 PY1=MaxY; while ((Y1(PY1,1)>=50)&&(PY1>1)) PY1=PY1-1; end PY2=MaxY; while ((Y1(PY2,1)>=50)&&(PY2

MATLAB 软件使用简介 轮廓线提取 实验2 图像轮廓线提取技术 实验3 RGB向量空间中的图像分割技术 实

MATLAB 软件使用简介 MATLAB 是一个功能强大的数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。MATLAB自1984年由美国的MathWorks公司推向市场,现已成为国际最优秀的科技应用软件之一。 一、MATLAB 的工作界面 启动MATLAB后, 出现MATLAB命令窗口,空白区域是MATLAB 的工作区, 在此可输入和执行命令。 二、 MATLAB 操作的注意事项 ●在工作区输入MATLAB命令后, 按下Enter键才能执行命令。 ●MATLAB 是区分字母大小写的。 ●如果不想显示结果,只要在所输入命令的后面加上一个分号“;”即可。 如:x= 2 + 3↙ x=5 x = 2 + 3 ; ↙不显示结果5 ●如果一个表达式一行写不下,可以在行尾键入“...”来换行。 如:q=5^6+sin(pi)+exp(3)+(1+2+3+4+5) ... -5+1/2-567 ●命令行与M文件中的百分号“%”标明注释。 三、MATLAB的变量与表达式 ●MATLAB的变量名 MATLAB的变量名是用一个字母打头,后面最多跟19个字母或数字。应该注意不要用MATLAB中的内部函数或命令名作为变量名。列出当前工作空间中的变量命令为: who 将内存中的当前变量以简单形式列出; whos 列出当前内存变量的名称、大小、类型等信息;

clear 清除内存中的所有变量与函数。 ● MATLAB 常用的预定义变量 ans :保存计算结果的缺省变量;Inf 或inf :无穷大; i 或j pi :圆周率π。 ● MATLAB 的运算符 数学运算符:+,-,*, \(左除), / (右除) , ^ (乘幂) 关系运算符:<, >, <=, >=, = =(等于), ~= (不等于) 逻辑运算符:&(逻辑与), |( 逻辑或), ~( 逻辑非) ● MATLAB 的表达式及语句 表达式由运算符、函数、变量名和数字组成的式子。MATLAB 语句由变量、表达式及MATLAB 命令组成,用户输入的语句由MATLAB 系统解释运行。MATLAB 语句的2种最常见的形式为: 形式1:表达式 形式2:变量=表达式 在第一种形式中,表达式运算后产生的结果如果为数值类型,系统自动赋值给变量ans ,并显示在屏幕上。 例1:用两种形式计算3 6sin 5e ++π算术运算结果。 解:形式1: 5^6+sin(pi)+exp(3) ↙ ans = 1.5645e+004 形式2: a=5^6+sin(pi)+exp(3) ↙ a = 1.5645e+004 例2:已知矩阵 ?? ? ???=???? ??=22 11 ,2121B A ,对它们做简单的关系与逻辑运算 解:A=[1,2;1,2]; ↙ B=[1,1;2,2]; ↙ C=(A

相关文档
相关文档 最新文档