文档视界 最新最全的文档下载
当前位置:文档视界 › 基于matlab的彩色图像皮肤区域分割及人脸检测

基于matlab的彩色图像皮肤区域分割及人脸检测

基于matlab的彩色图像皮肤区域分割及人脸检测
基于matlab的彩色图像皮肤区域分割及人脸检测

目录

第一章引言 (1)

第二章算法理论与实现原理 (1)

2.1肤色分割理论 (1)

2.2常见肤色模型比较 (2)

2.2.1 区域模型 (2)

2.2.2 简单高斯模型 (2)

2.2.3 混合高斯模型 (2)

2.2.4 直方图模型 (3)

2.3常见色彩空间比较 (3)

2.3.1 RGB (3)

2.3.2 HSV (4)

2.3.3 YcbCr (4)

第三章系统设计 (7)

3.1建立肤色模型 (7)

3.2肤色分割步骤 (8)

第四章参考文献 (12)

第五章心得体会 (12)

第一章引言

近年来,随着人工智能的快速发展,人脸识别技术逐渐成为模式识别与计算机视觉领域的一个研究热点,可用于身份认证、人员监视、图像数据库检索以及目标跟踪等场合。

人脸识别(Face Recognition)是将输入的人脸图像与系统已知人脸库中的模型进行比较,以确定是否存在相匹配的人脸,而人脸检测( Face Detection) 是指在输入图像中确定所存在的人脸的位置与大小,所以快速有效的人脸检测则显得至关重要,是实现人脸识别的前提和基础。

人脸检测系统要求实现对输入的可能包含人脸的图像进行处理,并输出图像中是否存在人脸以及人脸的数目、位置、尺度、位姿等参数信息。传统的人脸检测方法大多是在亮度空间内进行,利用灰度的变化做多尺度空间的全搜索,计算量非常大、效率极低,而在人脸区域中,肤色一定是占主导地位的像素色彩值,虽然肤色因人而异,但经过研究可以发现肤色在色彩空间中的一定范围内是呈聚类特性的,特别是在排除了光照亮度和在经过变换的色彩空间中,利用肤色这一特征可以排除掉在灰度图像中的非皮肤区域,这对人脸检测起到了积极的作用。

第二章算法理论与实现原理

2.1肤色分割理论

肤色特征主要由肤色模型进行描述,而肤色模型的选取与色度空间(chrominance space)的选择密切相关。人脸检测常用的色度空间主要RGB(红、绿、蓝三基色)、rgb(亮度归一化的三基色)、HSI(色调、饱和度、亮度)、YIQ(NTSC制的光亮度和色度模型)、YUV(PAL制的光亮度和色度模型)、YCbCr(CCIR601)编码方式的色度模型、CIEL(国际照明委员会提出的基于色度学的彩色模型)等。

另外,用肤色模型对肤色进行分割分为两个阶段:模型建立与

模型运用。模型的建立主要是通过对大量肤色像素集进行统计分析,然后确定模型中的参数;对于模型的运用,主要是通过已建立的肤色模型来判别所输入的像素或区域是否为肤色,或者给出其与肤色的相似程度。不论在什么样的色彩空间中,肤色模型大体上分为四种:区域模型或IF-THEN模型、简单高斯模型、混合高斯模型和直方图模型。

2.2常见肤色模型比较

2.2.1 区域模型

该模型又称IF-THEN模型、简单门限模型,它主要是利用了肤色在色彩空间的聚类性(即取值范围),将一块满足一定条件的区域标定为肤色区域。采用这个模型来判别肤色需要分两步走:首先通过统计的方法确定模型(即归属于肤色的具体范围);其次利用这个模型来判别新的像素或区域是否为肤色。因此,对于一幅新的图像,如果某个像素或区域满足给定的条件就为肤色,否则就是非肤色。从上面的判断过程来看,它是一种较简单的肤色模型。该模型的困难之处在于如何确定阈值。阈值选择不当可能会使肤色检测率下降,误检率上升。此方法计算简单,使用方便,速度快,但是效果不是很好,只适用于特定条件下的肤色检测。

2.2.2 简单高斯模型

这种方法是假设肤色分布服从单峰高斯分布。它主要通过统计分析,预测高斯分布的参数,其中参数确定常用的方法有EM 算法,Maximum-Likelihood或通过统计直接求得色彩空间中每个分量(一般利用的是该色彩空间中的色度分量)的均值与方差。采用这种方法也分为两步:首先选择方法确定模型的参数(即均值和方差);其次利用该模型来判别新的像素或区域是否为肤色。简单高斯模型相对区域模型能更好的表示肤色分布,因此相对而言,它的肤色检测率也高出许多,并且模型的参数也易于计算,但是速度比区域模型慢。

2.2.3 混合高斯模型

由于具有不同种族的肤色直方图并不完全满足单峰高斯分

布,通过研究可以采用多峰的高斯分布来精确表示。因此,提出了混合高斯模型,如公式2.1所示:

∑==m

i i i w x p w p x p 1)|()()( (2.1)

其中,)(x p 为肤色像素在色彩空间中的混合概率密度,)|(i w x p 为分量的概率密度,)(i w p 为分量的先验概率,i=1, 2,...,m 为混合密度的分量个数。该模型表明肤色的每个像素密度都属于概率密度的混合体。在这个模型中主要难点是对混合高斯模型的参数估计。其参数的估计常采用Dempster 等人提出的基于极大似然的算法。利用该算法需要进行迭代,而迭代的收敛速度受参数的初值影响,同时与分量密度个数关系很大,分量越多,运算越复杂。这种方法相对于前面两种模型来说,肤色的检测率要高得多,误检率也要小得多,但是模型的确定(即模型的参数估计)较难,速度较慢,不适合快速的肤色检测。

2.2.4 直方图模型

通过对肤色直方图的统计,然后利用阈值来进行判别。对于三维直方图,尽管效果很好,但是需要很多的训练样本而且训练时间很长,这里不详细讨论这种方法。

2.3常见色彩空间比较

2.3.1 RGB 空间

由于彩色图像是多光谱图像的一种特殊情况,对应于人类视觉的三基色即红、绿、蓝三个波段,是对人眼的光谱量化性质的近似。因此利用R 、G 、B 三基色这三个分量来表征颜色是很自然的一种格式。而且多数的图像采集设备都是以CCD 技术为核心,直接感知色彩的R 、G 、B 三个分量,这也使得三基色模型成为图像成像、显示、打印等设备的基础,具有十分重要的作用。

RGB 色彩空间用R 、G 、B 三种基本颜色分量来表示数字图像像素的颜色值。RGB 色系坐标中三维空间的三个轴分别与红、绿、蓝三基色相对应,原点对应于黑色,离原点最远的顶点对应于白

色,其他颜色落在三维空间中由红、绿、蓝三基色组成的彩色立方体中。其他的色彩空间常以RGB色彩空间为基础,其分量可以描述为RGB三色的线性或非线性函数。RGB色彩空间通过色彩的相加来产生其他颜色,通常称为加色合成法(Additive Color Synthesis)。

一般来说,RGB色彩空间由于R, G, B分量相关性强,不大容易直接建立肤色模型。为了把肤色区域同非肤色区域分离,需要使用适合不同肤色和不同光照条件的可靠肤色模型。而对于RGB色彩空间而言,R、G、B三个基色不仅代表颜色,还表示了亮度。由于周围环境光照的改变引起亮度变化会使人脸检测更复杂,在这样的条件下,直接利用RGB空间聚类进行肤色分割是不可靠的。虽然在RGB空间难于将肤色有效地聚成密集分布的一类,但人体肤色的特征色调在红色区内,这一特征表现在图像中,就是肤色的RGB值符合:R >G > B

肤色的这一特征相当稳定,无论是人种的变化还是环境光照的变化,都不足以造成上式变为G>R或B>G肤色的聚类结果简单而稳定。而且由于我的研究是面向人脸自动识别空间中的人脸检测环节,人脸检测空间的输入图像已经过光线补偿等预处理,从另一方面避免了光照的影响。通过手工提取图像中大量肤色像素进行实验分析,发现结果与上式吻合。

RGB色彩空间的这种肤色模型虽然简单,但三个色彩分量没有很好地和人对色彩判断的因素相联系,冗余信息多,R, G, B 相关性强,不便于处理。而且对三个分量分别处理会带来颜色信息的丢失和错乱。故一般处理方法是将RGB空间转换为其他的色彩空间,目的是降低分量之间的相关性,将亮度与反映色彩本质特性的色调信息分离。

2.3.2 HSV空间

这是Munseu提出的色彩空间模型,经常为艺术家所使用,它是一种主观彩色模型,不采用将某种特定的颜色分解为三原色的方法,而是描述颜色的三种属性。这三种属性分别是: 色调( Hue)、饱和度(Saturation)和亮度(Value),也有称为HIS。其中,色调值表示基本的纯色,饱和度值表示颜色中掺入白光的比例,亮度值则表示颜色中掺入黑光的比例。这种格式反映了人类观察色彩的方式,比较好地反映了人对颜色的感受,同时也有利于图像处理。在对色彩信息的利用中,这种格式的优点在于它将

亮度(V)与反映色彩本质特性的两个参数一一色调(H)和饱和度(S)分开。我们提取一类物体(比如现在研究的人脸)在色彩方面的特性时,经常需要了解其在某一色彩空间的聚类特性,而这一聚类特性往往体现在色彩的本质特性上,而又经常受到光照明暗等条件的干扰影响。光照明暗给物体颜色带来的直接影响就是亮度分量(I),所以若能将亮度分量从色彩中提取出去,而只用反映色彩本质特性的色调、饱和度来进行聚类分析,会获得比较好的效果。这也正是HSV 格式在彩色图像处理和计算机视觉的研究中经常被使用的原因。

在HSV (也称HSI )色彩系统中建立肤色模型时,同样为避免肤色模型对亮度变化的敏感性,主要研究肤色在HS (色调、饱和度)平面的分布。不过,从选取的大量肤色样本的统计来看,肤色的亮度V 都不会小于40,在HSV 色彩系统中,定义肤色为V>40,且H 、S 落在特定的区域。

2.3.3 YCbCr 色彩空间

YCbCr 色彩系统是一种常见的重要的色彩系统,网络上比比皆是的JPEG 图片采用的色彩系统正是该系统。它由YUV 色彩系统衍生而来, Cb=k1U,Cr=k2,其中k1 、k2分别为压缩系数,压缩的目的是防止色差信号对亮度信号的干扰及超过亮度信号的电平,也就是说Cb 和Cr 则是将U 和V 做少量调整而得到的。Y 仍为亮度信息。YCbCr 色彩系统与RGB 色彩系统的转换关系如下: Y B G R ?+?+?=114.0587.0299.0

128713.0)(+?-=Y R Cr 128564.0)(+?-=Y B Cb 即:

2.3.4. YCbCr 空间肤色模型

由于统计表明不同人种的肤色区别主要受亮度信息影响,而受色度信息的影响较小,所以直接考虑YCbCr 空间的CbCr 分量,映射为CbCr 空间,在CbCr 空间下,受亮度变化的影响少,且是两维独立分布。通过实践,选取大量肤色样本进行统计,发现肤

色在CbCr 空间的分布呈现良好的聚类特性。

统计分布满足:77≤Cb ≤127 (2.2)

并且满足:133≤Cr ≤173 (2.3)

不同人种的皮肤虽然相差很大,但在色度上的差异远远小于亮度上的差异,其实不同人的肤色在色度上比较接近,但在亮度上的差异很大,在二维色度平面上,肤色的区域比较集中,可以用高斯分布描述。

根据肤色在色度空间的高斯分布,对根据肤色在色度空间的高斯分布,对于彩色图像中每个像素,将其从RGB 色彩空间转换到YCbCr 空间后,就可以计算该点属于皮肤区域的概率[3],即根据该点离高斯分布中心的远近得到和肤色的相似度,将彩色图像转化为灰度图,其中每个像素的灰度对应该点与肤色的相似度,相似度的计算公式如下:

)]()(5.0exp[)(1m x C m x CbCr p T ---=- (2.4)

其中m 为均值,m=E(x),C 为协方差矩阵,T CbCr x )(=,))({(T m x m x E C --=

肤色分布的2D 高斯模型G(m,V2)也可表示为

),(Cr Cb m = ∑==K

i i Cr N Cr 1

1 ∑==N

i i Cb N Cb 1

1 其中,Cr Cb 、

为Cr Cb 、相应的平均值,V 为协方差矩阵。 通过高斯肤色模型将彩色图像转换为相似度灰色图像后,选取合适的阈值,就可以分离肤色与非肤色区域。这种肤色模型的特点是基于统计的肤色模型,它需要对每一个像素点进行相似度计算,因此速度也不是太快。当然在实际用于肤色检测中,可以

直接利用公式(2.4)中的)]

m

x T-

-

--项进行判决,以提

C

(

x

)

(5.0

[1m

高检测速度。

结合以上分析由于人肤色的不同主要体现为亮度分量的不同,所以选择亮度分量和色度分量分离的YC b C r 色彩空间进行肤色建模。

综上,可以从两个方面考察某种色度空间:(1)在该色度空间中能否用给定的模型描述“肤色”区域的分布;(2)色度空间中“肤色”与“非肤色”区域的重叠有多少。实验结果表明:在YCbCr 色彩空间中肤色的聚类特性比较好。而在肤色模型的选取上,考虑到算法复杂度和检测效果的因素,采用高斯肤色模型。

第三章系统设计

3.1建立肤色模型

为了利用肤色在色度空间的聚类性,选取YCbCr色彩空间进行肤色提取。首先选取大量彩色图片进行手工处理只保留人体皮肤区域。接下来将彩色图片颜色空间转换到YcbCr空间,然后对该区域的CbCr值进行统计处理。处理的方法就是采用前面已经讲到过的高斯模型。m=E(x) ,T

=,C为协方差矩阵,

(

x)

CbCr

=--。

C E x m x m

{()()}T

通过这个肤色高斯分布可得到待检测彩色图像中任意一个像素点属于皮肤的概率。对于某像素点s,从RGB空间转换到YCbCr色彩空间得到色度值(Cb,Cr)则该像素的肤色概率密度可由下式计算得到:)]

m

x

CbCr

-

=-式中:

-

p T-

(1m

)

C

(5.0

(

exp[

x

)

T

=。

(

CbCr

x)

我选取了24幅不同肤色、年龄和性别的人的彩色图片,通过

手工分割出脸部区域,然后进行统计,他们在YCbCr 空间中的分布情况如图3-1所示,这一柱状图表明不同人的肤色在YcbCr 空间中有良好的聚类特性。图3-2是肤色高斯模型。从两图中我们不难看出高斯模型能很好地表现肤色的分布。

图3-1YCbCr 空间分布 图3-2 肤色高斯模型

通过计算,得到m 和C 的值如下:

m=[117.4316 148.5599];(3-1)

???

? ??=9966.1414700.244700.240946.97C (3-2) 3.2肤色分割步骤

低通滤波

为了减少图像高频噪声的影响,先采用低通滤波器对图象进行处理。采用的低通滤波器的冲击响应矩阵为:

11111119111h ?? ?= ? ??? (3-3)

在matlab 中实现的语句为:

pf=1/9*ones(3); %定义滤波器类型

J=filter2(lpf,J); %对图像进行滤波,J

为图像对应

的矩阵

对图像进行滤波处理(J为图像对应的矩阵,f为滤波器类型)fR=x(:,:,1); %提取R分量

fG=x(:,:,2); %提取G分量

fB=x(:,:,3); %提取B分量

filtered_fR=imfilter(fR, f);

filtered_fG=imfilter(fG, f);

filtered_fB=imfilter(fB, f);%分别对三分量进行滤波处理

x_filtered=cat(3,filtered_fR,

filtered_fG,filtered_fB);

;

%重构图像

色彩空间转换

对于一幅被检测的彩色图像(见图3-3),首先将它由RGB 空间转换到YCbCr色彩空间,便于后面的统计。

图3-3 原始图像进行滤波处理并转换到YcbCr空间图

得到似然图

根据(Cb,Cr)值通过式(2.4)找到该值所对应的肤色似然度,并且得到整幅图像的最大肤色似然度。每一点像素的肤色似然度除以最大肤色似然度所得到的值,作为该像素点的灰度值,从而得

到肤色似然度图像,其中每一个像素点的灰度值表征了这个像素点属于皮肤的概率。

在matlab中实现的语句为:

[a,b,c]=size(I);

cb=double(I(:,:,2));

cr=double(I(:,:,3));

for i=1:a

for j=1:b

w=[cb(i,j),cr(i,j)];

m=[117.4316 148.5599];

n=[260.1301 12.1430;12.1430 150.4574];

p(i,j)=exp((-0.5)*(w-m)*inv(n)*(w-m)');

end

end

J=p/max(Q);

%每一点像素的肤色似然度除以最大肤色似然度所得到的值,

作为该像素点的灰度值

图象二值化处理

目的是将皮肤区域和其他区域更好地区分开来。皮肤区域用“1”(白色)表示,其他区域用“0”(黑色)表示。

阈值分割

阈值分割的目的是将皮肤与图片背景分开。通常有固定阈值法、自适应阈值法等。在这里我选用的是固定阈值法,主要是从运算速度上考虑的。当然相比之下,自适应的阈值法一般不会漏检,检测效果肯定比固定值法好。

图3-4图片深度处理

☆形态学处理

该步骤的目的是改善分割效果。形态学(Morphology)原是对于动植物调查时采取的某种形式的研究。数学形态学(Mathematical Morphology)是分析几何形状和结构的数学方法,它建立在集合代数的基础上,是用集合论方法定量描述集合结构的学科。1985年之后,数学形态学逐渐成为分析图像几何特征的工具。

数学形态学包括一组基本的形态学运算子:腐蚀(Erosion),膨胀(Dilation)、开运算(Opening)、闭运算(Closing)等。运用这些算子及其组合来进行图像形状和结构的分析及处理。形态学的理论基础是集合论。在图像处理中形态学的集合代表着黑白和灰度图像的形状,如黑白图像中的所以黑像素点组成了此图像的完全描述。通常我们选择图像中感兴趣的目标图像区域像素集合来进行形态学变换。通常,当有噪声的图像用闭值二值化时,所得到的边界往往是不平滑的,物体区域具有一些错判,背景区域上则散布着一些小的噪声。使用形态学上的连续的开和闭运算可以显著的改善这种情况。如图3-5所示,开闭运算后的图象可以去除图像上的一些细小的毛刺,达到去噪的目的。填孔处理可以进一步去除毛刺,但是也将一些非皮肤区域保留为皮肤区域处理。所以综合考虑后,只采用开闭运算改善效果。

se=strel('square',3);

s=imopen(s,se);

s=imclose(s,se); %利用开闭运算的方法消除噪声

s=imfill(s,'holes'); %填孔处理

fe=imerode(s,ones(8,7));

fo=imopen(s,ones(8,7));

s=imreconstruct(fe,s);

axes(handles.axes5); %重构法

imshow(s);

set (handles.btnresult,'Enable','on');

第四章参考文献

[1]邵林昌.基于肤色分割的人脸检测[D],东南大学硕士论文,2006.

[2]陈茂源.基于MA TLAB的彩色图像皮肤区域分割算法研究与实现,2007.

[3]李伟.基于肤色分割的人脸检测技术[D],电子科技大学硕士论文,2006.

[4]冈萨雷斯.数字图像处理(matlab版)[M],电子工业出版社,2006.

[5]李显宏.MATLAB7.X界面设计与编译技巧[D],电子工业出版社,2006.

[6]孙兆林.MATLAB6.x图像处理教程[D],清华大学,2007.

[7]林福宗.多媒体技术与应用(第三版)[M],清华大学出版社,2002.

第五章心得体会

时间过得很快,在这一周的时间里,收获很多,我所做的题目是有关图像处理的,说的专业点是属于计算机视觉的,再大点就是模式识别与智能系统。我的目的就是通过这次课设让我能对今后自己可能从事的方向有一个更好的认识并打一个较好的基础。从本次课设的结果看,我的目的达到了。

我所做的课题是基于matlab的彩色图像皮肤区域分割及人脸检测。在此过程中遇到问题是不可避免的。最开始遇到的问题是弄懂皮肤分割的原理。通过老师的提示并在查阅了Yang的那篇著名论文后终于对人的肤色聚类性有了了解,原理问题也就基本弄清楚了。接下来就是肤色建模的问题。在查阅大量的文献后我选择了高斯模型。因为这个模型我们在数学中都有接触,理解和实现起来都不是那么困难。通过和同学们的相互交流,我得到了更大的锻炼,对matlab软件的操作也更加熟悉,相信这些都会为

我以后的深造打下一个良好的基础。

.

基于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实现自适应图像阈值分割最大类方差法代码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代码

图像分割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

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

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