文档视界 最新最全的文档下载
当前位置:文档视界 › (原创)基于MATLAB的彩色图像皮肤区域分割算法研究与实现

(原创)基于MATLAB的彩色图像皮肤区域分割算法研究与实现

(原创)基于MATLAB的彩色图像皮肤区域分割算法研究与实现
(原创)基于MATLAB的彩色图像皮肤区域分割算法研究与实现

通信工程系

综合实习报告

题目:基于MATLAB的彩色图像皮肤区域分割算法研究与

实现

姓名:刘奇

指导教师:杨敏

班序号:11206213

学号:20061002153

成绩:

2009年9 月

目录

第一章引言 (2)

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

2.1肤色分割理论 (3)

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

2.2.1 区域模型............................................................................. 错误!未定义书签。

2.2.2 简单高斯模型 (4)

2.2.3 混合高斯模型 (5)

2.2.4 直方图模型 (5)

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

2.3.1 RGB (6)

2.3.2 HSV (7)

2.3.3 YCbCr (7)

第三章系统设计 (8)

3.1建立肤色模型 (8)

3.2肤色分割步骤 (9)

3.3实现人脸检测 (10)

3.4设计系统GUI (10)

3.4.1 GUI设计步骤........................................................................ 错误!未定义书签。

3.4.2 系统功能描述....................................................................... 错误!未定义书签。第四章系统调试.. (11)

4.1系统功能描述 (11)

4.1.1导入入图像文件 (11)

4.1.2对图像滤波处理 (11)

4.1.3 RGB到YCbCr空间转换 (12)

4.1.4显示似然图 (14)

4.1.5显示二值图 (14)

4.1.6显示皮肤区域分割图 (14)

4.1.7进行人脸检测并加框输出 (14)

4.2 调试难点 (15)

4.2.1 复杂背景下漏检和错检 (15)

4.2.2小图像无法覆盖大图像 (15)

4.2.3人脸检测处理速度过慢 (15)

第五章实习总结 (16)

参考文献 (16)

实习日志 (16)

第一章引言

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

人脸识别(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.2.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

=114

.0

587

299

.0

.0

+

?

R?

G

?

+

)

.0

564

(+

B

Cb

=Y

-

?

Cr128

.0

R

128

)

713

=Y

-

?

(+

即:

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 11 ∑==N

i i Cb N Cb 1

1 其中,Cr Cb 、为Cr Cb 、相应的平均值,V 为协方差矩阵。

通过高斯肤色模型将彩色图像转换为相似度灰色图像后,选取合适的阈值,就可以分离肤色与非肤色区域。这种肤色模型的特点是基于统计的肤色模型,它需要对每一个像素点进行相似度计算,因此速度也不是太快。当然在实际用于肤色检测中,可以直接利用公式(2.4)中的)]()(5.0[1m x C m x T ----项进行判决,以提高检测速度。

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

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

第三章 系统设计

3.1建立肤色模型

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

通过这个肤色高斯分布可得到待检测彩色图像中任意一个像素点属于皮肤的概率。对于某像素点s ,从RGB 空间转换到YCbCr 色彩空间得到色度值(Cb,Cr)则该像素的肤色概率密度可由下式计算得到: )]()(5.0exp[)(1m x C m x CbCr p T ---=- 式中: T CbCr x )(=。 我选取了24幅不同肤色、年龄和性别的人的彩色图片,通过手工分割出脸部区域(图3-1所示),然后进行统计,他们在YCbCr 空间中的分布情况如图3-2所示,这一柱状图表明不同人的肤色在YcbCr 空间中有良好的聚类特性。图3-3是肤色高斯模型。从两图中我们不难看出高斯模型能很好地表现肤色的分布。

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

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

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

???

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

低通滤波

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

11111119111h ?? ?= ? ???

(3-3) 色彩空间转换

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

得到似然图

根据(Cb,Cr)值通过式(2.4)找到该值所对应的肤色似然度,并且得到整幅图像的最大肤色似然度。每一点像素的肤色似然度除以最大肤色似然度所得到的值,作为该像素点的灰度值,从而得到肤色似然度图像,其中每一个像素点的灰度值表征了这个像素点属于皮肤的概率。

图象二值化处理

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

阈值分割

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

3.3 人脸检测

人脸候选区筛选时,由于头部部分重合,以及头部与其他部分,例如衣服等的连接,对筛选造成了困难,故应先利用闭运算操作,断开连接,再进行处理。

利用人脸候选区筛选,进一步确定人脸区域(判断规则如下):

● 若目标高宽比小于0.8而大于2.0,则认为不是人脸区域,删除此区域。

● 区域面积过大或过小,认为不是人脸区,删除此区域。

如图3-7、3-8所示。

图3-7 多人检测效果图 3-8 单人检测效果图

3.4系统GUI设计

本系统设计的GUI如图3-10所示,为了方便用户使用,所有功能按钮上,均以中文显示,且在导入图片后,其它按钮均处于激活状态,用户可以根据需要选择顺序执行或者执行其中的某几步。

图3-9 系统GUI设计

系统功能描述:

(1)系统功能按钮:

导入图片:从本地计算机导入图片文件并显示,支持所有常见图像文件格式。

滤波处理:对导入的图片进行低通滤波处理,消除图像的高频噪声并显示滤波后图像。 YCbCr图:实现图像彩色空间的转换,由RGB彩色空间转换到YCbCr彩色空间并显示转换后的图像。

似然图:得到原始图像经过高斯模型处理后产生的似然图,并显示出来。

二值图:在似然图的基础上,对图像进行形态学和二值化处理,并显示处理后的图像。 皮肤域输出:显示经过皮肤分割处理后的图像。

人脸检测:对原始图象进行人脸检测,在图片上的人脸部分加了一个矩形框。

(2)菜单按钮:

系统信息: 单击后显示软件版本信息以及作者介绍。

帮助:单击后显示软件的使用说明书。

清空历史:在处理完一张图片后,可以通过该按钮清除当前工作区域。

退出系统:退出系统应用程序。

第四章系统调试

4.1系统功能描述

4.1.1导入图像文件

单击GUI上“导入图片”按钮后,弹出如图4-1所示的提示框,提示用户选择要处理的图像,通过查找在本地计算机中选择图像。图4-1所示的为选择测试图片文件夹中的某幅图片。如果用户在这一步没有选择图片,则会弹出如图4-2所示的警告对话框,提醒用户输入图像。

图4-1 导入图片

图4-2 在没有导入图片时弹出的警告框

4.1.2对图像进行滤波处理

如图4-3第二个位置所示,在读入图像后,单击“滤波处理”按钮,在按钮右边的坐标轴上显示的是经过滤波处理过的图像。在学习数字图像处理这门课时我们学习的都是基于灰度图的处理。对于彩色图像的处理,一开始我还采用了灰度图的处理方式,结果编译不通过,后来经过查找资料,才知道RGB图像是三维的,不能像处理灰度图那样处理。彩色图像进行空间滤波有两种方式,一种是对先提取出图像的R、G、B分量分别采用灰度图的处理方式进行处理,然后进行图像的重构。另外一种方式简单些,就是采用matlab 自带的一个函数处理。两种方式在matlab中实现的代码分别为:(x为图像对应的矩阵,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);

方式二:

x_filtered= imfilter(x,f);

图4-3 图片初步处理

4.1.4图像彩色空间的转换

如上图4-3第三个位置所示,即是原始RGB空间彩色转换到YCbCr空间后的结果。

4.1.6得到似然图

单击“似然图”按钮,按钮右边的坐标轴中将显示原始图像的似然图。如图4-4第一个位置所示。

图4-4 图片深度处理

4.1.7显示二值图

单击“二值图”按钮,如图4-4第二个位置将显示二值图像。

4.1.8显示皮肤区域分割图

在二值图的基础上进行,二值图处理的目的就是将非皮肤区域全部变为灰度值为0的黑色区域。这样,将二值图与原始图象结合比较就可以得到皮肤分割图:二值图中黑色部分构成皮肤分割图中的背景区域,原始图像与二值图中值为1的对应区域为构成皮肤分割图中的皮肤区域。显示的图像见图4-4中第三个位置。

4.1.9进行人脸检测

在原始彩色图像的人脸部分加框。

图4-5 人脸检测加框效果图

4.1.10系统辅助选项

图4-6 系统辅助选项:帮助菜单、系统信息、退出菜单

4.2 调试难点

4.2.1小图像无法覆盖大图像

如果系统在处理了一张尺寸较大的图片后,如果接着处理一张尺寸较小的图像,在二值图和似然图那一步就会出现同时显示两张图片的情况,底下是上次处理过的大尺寸图片,上层显示的是本次处理的小尺寸图片(图4-9所示)。问题出现的原因是因为上次处理完的图片占用的内存空间并没有在结束对它的处理后释放掉,导致后来较小图片在内存中所占变量不能完全覆盖原来的变量。经过认真的检查,发现是在代码重用时定义的全局变量出了问题,因为许多变量在不同的程序段进行了重复定义,而Matlab语言并不支持类似C++语言的机制。通过在变量定义进行改进,经过测试,出现的问题成功得到了解决。

4.2.2人脸检测执行速率过慢

在从似然图到二值图像的时候,没有考虑到代码重用问题,把前面的工作又做了一遍,所以系统执行的速度很慢。另外,最初人脸检测算法过于复杂,也导致了系统执行速率过慢,经过改进后,系统的执行速率和正确率都得到了极大提高。

第五章实习总结

这次实习对我而言是十分珍贵的,因为它是在我克服了诸多困难之后完成的。一开始,当7月份学校规定参加2009全国大学生电子设计竞赛的同学可以不做课程实习,但考虑到“人脸检测和识别”是一个很有意义的课题且自己十分感兴趣,所以在咨询过老师后我就开始准备这个实习,并开始熟悉人脸检测原理和搜集相关资料。后来由于家里突发急事,而不得不中断实习,等处理完家里的事情再回到学校,已经是8月底了,我依然决定要完成实习。

由于开始资料查找工作比较充分,我很快就大致确定了系统设计思路:先将普通彩色RGB图片转换到RCrCb空间,利用高斯分布完成肤色模型构建,再利用肤色的聚类性完成皮肤区域分割,最终利用高效的算法完成对人脸区域的加框输出。

虽然目标比较明确,但实际操作过程中还是遇到了不少问题,例如小图不能覆盖大图问题,复杂背景下人脸检测效果很差,系统执行效率很低等问题。这些问题有些是向老师和同学请教解决的,有些是我自己在网上查找原因解决的,更多的时候是自己苦苦思索、多次尝试解决的,虽然有的问题很微不足道,但正所谓“细节之处见高低”,可以说只有具备积极向上的态度和坚忍不拔的意志并坚持到底才能克服一切困难。

所以在这里,要十分感谢学校给我们提供这次实习机会,还要特别感谢杨敏老师给我们提供了这样一个富有意义和研究价值的课题,谢谢!

参考文献

[1]Terrillon J C, Shirazi M N, Fukamachi H, et al. Comparative performance of different skin chrominance models and chrominance spaces for the automatic detection of human faces in color images[J].In: Proc.Conf. on Automatic Face and Gesture Recognition, Grenoble, France, 2000.

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

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

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

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

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

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

附录程序代码见压缩包

实习日志

2009-07-06 熟悉人脸检测原理并完成相关资料搜集。

2009-07-07——2009-08-23实习中断。

2009-08-23——2009-08-24 复习人脸识别检测原理,并初步构思系统设计步骤。

2009-08-25——2009-08-28 构思肤色分割算法,搜集不同肤色图片,利用高斯分布完成肤色模型构建。

2009-08-28——2009-08-29 分割出皮肤域,对人脸区域直接加框,效果不好,有漏检和错检现象。

2009-08-30——2009-08-31 到学校继续完善系统。寻找更合适的处理皮肤域方法,借鉴国外人员facefind()函数,经过改进,较好地完成了系统主要功能。

2009-09-01 完成系统优化,主要实现菜单中文化和GUI界面美化。

2009-09-02——2009-09-03 完成实习报告。

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

大津法: 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的图像分割方法及应用

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

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

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

基于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的图像阈值分割技术

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

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

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

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

部分图像分割的方法(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的图像分割算法研究毕业设计

基于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仿真知识讲解

图像分割技术与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的图像分割处理

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

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

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

两个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实现

图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等; 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。 中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。 实验一:均值滤波对高斯噪声的效果 代码 I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声 subplot(2,3,1);imshow(I); title('原始图像'); subplot(2,3,2); imshow(J); title('加入高斯噪声之后的图像'); %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3 K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5

车牌图像分割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的数字图像分割的研究与实现 学院:计算机与信息工程学院 学生: 学号: 专业: 年级: 完成日期: 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 MATLAB to 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的图像分割算法研究 作者姓名XXX 学号 指导教师XX教授 学科专业计算机科学与技术 所在学院计算机学院 提交日期 目录: 1 引言 2 图像目标分割与提取技术综述 3 最优割集准则的设计 4 基于等周图割的图像分割 5 编程语言的选择 6 程序运行结果

1.引言 数字图像处理技术是一个跨学科的领域。随着计算机科学技术的不断发展,图像处理和分析逐渐形成了自己的科学体系,新的处理方法层出不穷,尽管其发展历史不长,但却引起各方面人士的广泛关注。首先,视觉是人类最重要的感知手段,图像又是视觉的基础,因此,数字图像成为心理学、生理学、计算机科学等诸多领域内的学者们研究视觉感知的有效工具。其次,图像处理在军事、遥感、气象等大型应用中有不断增长的需求。 基于图论的图像分割技术是近年来国际上图像分割领域的一个新的研究热点。该方法将图像映射为带权无向图,把像素视作节点。利用最小剪切准则得到图像的最佳分割该方法本质上将图像分割问题转化为最优化问题。是一种点对聚类方法。对数据聚类也具有很好的应用前景。但由于其涉及的理论知识较多,应用也还处在初级阶段。因此国内这方面的研究报道并不多见,本文将对图论方法用于图像分割的基本理论进行简要介绍,并对当前图论方法用于图像分割的最新研究进展进行综述,并着重介绍基于等周图割的图像分割的方法。 2.图像目标分割与提取技术综述 图像分割是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。图像分割的方法和种类有很多,有些分割运算可直接应用于任何图像,而另一些只能适用于特殊类别的图像。有些算法需要先对图像进行粗分割,因为他们需要从图像中提取出来的信息。例如,可以对图像的灰度级设置门限的方法分割。值得提出的是,没有唯一的标准的分割方法。许多不同种类的图像或景物都可作为待分割的图像数据,不同类型的图像,已经有相对应的分割方法对其分割,同时,某些分割方法也只是适合于某些特殊类型的图像分割。分割结果的好坏需要根据具体的场合及要求衡量。图像分割是从图像处理到图像分析的关键步骤,可以说,图像分割结果的好坏直接影响对图像的理解。 2.1图像分割方法的发展和现状 分割问题的困难在于图像数据的模糊和噪声的干扰。前面已经提到,到目前为止,还没有一种或者几种完善的分割方法,可以按照人们的意愿准确的分割任

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