基于遗传算法的图像分割

基于遗传算法的图像分割

摘要:图像分割是模式识别与图像分析的预处理阶段,是图像处理到图像分析的关键步骤,也是一种基本的计算机视觉技术,在图像识别与图像分析中具有重要的意义。本文介绍了图像分割的一般模型、基于阈值选取的图像分割方法,讨论了遗传算法的概念、实现过程、数学理论基础、特点、应用及发展前景。鉴于遗传算法的优化原理,提出了一种基于遗传算法的图像分割方法,该方法将遗传算法引入图像分割,利用遗传算法的快速寻优特点,优化了求解阈值的过程,极大地减少了计算量和存储空间。

关键词:遗传算法,图像分割,阈值

The Image Segmentation Based on Genetic Algorithm

Abstract:Image segmentation, as the pretreatment of the pattern recognition and image analysis, as the key step

of the image processing to image analysis, and also as one computer vision technology, is very important on image recognition and image analysis. This paper introduces the general model of image segmentation, and image segmentation method based on the threshold value, and discusses the concept, the realization process of genetic algorithm, mathematics theory foundation, characteristics, application and development prospect.In view of the optimization of genetic algorithm, this paper proposes a image segmentation method based on genetic algorithm, the genetic algorithm is introduced into image segmentation, the method using the fast optimization characteristics of genetic algorithm, optimization of the process of solving the threshold, greatly reduce the amount of calculation and storage space.

Key words: genetic algorithm, image segmentation, threshold

1.引言

遗传算法是基于进化论自然选择机制的、并行的、统计的、随机化搜索方法。对此,

科学家进行了大量的研究工作,并成功地将

它们运用于各种类型的优化问题。在分割复

杂图像时,人们往往采用多参量进行信息融合,在多参量参与最优值的求取过程中,优

化计算是最重要的。把自然进化的特征应用

到计算机算法中,将能解决很多困难。遗传

算法的出现为解决这类问题提供了新而有效

的方法,它不仅可以得到全局最优解,而且

大量缩短了计算时间。

2.图像分割

2.1图像分割的一般模型

图像分割是依据图像的灰度、颜色或几

何性质将图像中具有特殊含义的不同区域区

分开来,这些区域是互不相交的,每一个区

域都满足特定区域的一致性。比如对同一物

体的图像,一般需要将图像中属于该物体的

像素(或物体特征像素点)从背景中分割出来,将属于不同物体的像素点分离开。分割出来的区域应该同时满足:

1、分割出来的图像区域具有均匀性。

2、分割出来的图像区域具有连通性。

3、相邻分割区域之间针对选定的某种差异显著性。

4、分割区域边界应该规整,同时保证边缘的空间定位精度。

假设一幅图像中所有像素的集合为F ,有关均匀性的假设为 P (.)。分割定义把F 划分为若干子集 {S1,S2,…,Sn},其中每个

子集都构成一个空间连通区域。以上四个条

件进行数学描述,即:

如果加强分割区域的均匀性约束,分割

区域很容易产生大量的空白和不规整的边缘;若过分强调分割后不同区域之间的性质差异,则会造成非同质区域的合并和丢失一部分有

意义的边界。图像分割和机器视觉界的研究

者们为了研究满足上述定义的分割算法做了长期的努力。图像分割的算法都是针对某一类型的图像或某一具体应用的,通用方法和策略仍面临巨大的困难,同时并不存在一个判断分割是否成功的客观标准,因此,图像分割被认为是计算机视觉的一个瓶颈。

图像分割方法可以大致分为四个方面:

1、利用图像灰度统计信息的方法,典型的有一维直方图阈值化方法和二维直方图阈值化方法。

2、利用图像空间区域信息和光谱信息的图像分割方法,典型的包括区域分裂-合并生长法、纹理分割法和多光谱图像分割法等。

3、利用图像中灰度变化最强烈的区域信息方法——边缘检测方法,这一类方法是Marr理论中主要倡导的方法,它在图像分割研究领域中占的比例最大,典型的有 Canny 算法,Marr-Hildreth 算法和基于多尺度的边缘检测方法。

4、利用图像分类技术进行图像分割的像素分类方法。典型的有统计分类方法、模糊分类方法与神经网络分类方法等。

2.2 基于阈值选取的图像分割方法

阈值的方法实质是利用图像的灰度直方图信息得到用于分割的阈值。基于阈值选取的图像分割方法是提取目标物体与背景在灰度上的差异,把图像分为具有不同灰度级的目标区域和背景区域的组合。

阈值分割方法大致可分为:

1、单阈值的方法:用一个阈值区分背景和目标;

2、双阈值的方法:用两个阈值区分背景和目标;

3、半阈值的方法:大于(或小于)阈值部分为白,其余保留原灰度;

4、多阈值的方法:又称自适应门限方法,据多峰灰度直方图,区分背景和多个目标;

通常单阈值、双阈值的方法是利用整幅图像的整体信息,而多阈值分割法则是利用局部图像的信息。

2.2.1直方图阈值

1、双峰直方图

一幅含有一个灰度与背景有明显差异的图像包含有两个峰的灰度直方图,这两个峰分别对应于对象内部与外部较多数目的点。两峰之间的波谷对应于对象边缘附近相对较少数目的点。对于双峰直方图的情况,可根

据峰的形状确定阈值。如,将分割阈值取在

直方图的谷底位置,一般取在波谷的正中位置,这种方法称为双峰谷底法。该方法简单,但不能用于灰度直方图峰值相差悬殊且平坦

波谷的那些图像。

有一条不成文的约定,即图像中的对象

像素一般少于背景像素。因此,对象与背景

不能简单地以二值化后的值是 0 还是 1 来

判定。

2、多峰直方图

多峰直方图图像一般比较复杂,通常内

含多种对象,每个峰对应一个对象,单次二

值化对它没有多大意义。一种有效的算法称

为循环分解法,这种算法首先根据图像特征

将图像分成几个子图像,例如通过二值化分

成两个子图像,然后再在子图像内作进一步

的分解,直到不能再分解为止。这种算法需

要制作一些模板,分解只在模板定义的区域

中进行。这种算法充分考虑了图像的局部特性,可以获得比较精细的分割。多峰直方图图像二值化时,阈值一般可取在分割后两类

像素点接近的波谷处。

3、单峰直方图

单峰直方图的图像也是在图像处理中经

常遇见,但是缺乏有效的分割方法。微分处

理后得到的梯度(边缘)图像大都属于这种

类型。单峰直方图图像一般可分为下面两种

情况:

(1) 双峰直方图图像的两个峰的位置过于

接近,以至波形中部失去了下凹的波谷。(2) 背景与对象区域面积相差悬殊,对象区域无法在直方图中构成波峰。

对于情况(1),阈值可选择在波形的“肩部”,即选在波形底部斜率由陡向平的转折处。对于情况(2),可先在波形的“肩部”确定一个位置,将对应于背景区域的最大峰消除,

然后用循环分解法进行分割。为了避免不利

影响,通常将作为边框或边缘图中的 0 背景(或它们的反相值 255)排除在直方图统计

之外。

2.2.2最大熵阈值

将信息论中熵的概念应用于图像分割时,通过分析图像灰度直方图的熵,找到最佳阈值。

设分割阈值为τ,i P为灰度i出现的概

率,i ∈{0 ,1,2,…,L ?1},L-1

i=0

Pi=1∑。定义目

标O 用来描述 {0 ,1,…,τ}的灰度分布,背景B 用来描述 {τ + 1,τ+2,…,L ?1}的灰度分布,则它们的概率分布为:

定义与这两个概率分布相关的熵为:

式中

定义准则函数ψτ()为H (O)与H (B)之和,即:

使准则函数ψτ()取最大值的灰度级τ即是所求出的最优阈值*τ,即:

2.2.3 二维最大熵阈值

通过图像的一维灰度直方图选取阈值应用于最大熵法虽然处理速度快,但由于噪声干扰和照明等因素的影响,使得图像的一维灰度直方图没有明显的峰和谷时,为此利用一维灰度值分布选取的阈值往往难以获得满意的分割效果,甚至还可能产生错误的分割。为此,许多学者在一维灰度直方图阈值分割算法上引入了图像的二次统计特性,达到改善图像的分割质量。

设原图像X={mn x }的灰度级数为 L ,大小为 M ×N ,由X 采用3×3或5×5点阵平滑得到的平滑图像为Y={mn y },它的灰度级数

和大小也为L 和M ×N 。由X 和Y 可以构成一个二元组(像素的灰度级和该像素的邻域平均灰度级),每一个二元组属于二维平面上的一个点。称二元组

为图像 X 的“广义图像”。

设 X 的广义图像(X,Y)中二元组 (i,j)出现的总数为ij f 显然

(i,j)出现的频率为

图 2.1 二维直方图的灰度平面

设 A 区和B 区具有不同的概率分布,用

A 区和

B 区的后验概率对各区域的概率进行归一化,使分区熵之间具有可加性。若阈值设在 (s,t),则

定义离散二维熵为

则A 区和B 区的二维熵分别为

式中

定义熵的判别函数为

(2.2)

(2.1) (2.3) (2.4)

(2.5)

(2.6)

(2.7)

(2.8)

(2.9)

(2.10)

(2.11) (2.13)

(2.12)

(2.14)

(2.15)

上式包含了远离对角线的C 区和D区的概率,但C 区和D区包含关于噪声和边远的信息,概率较小,可以忽略不计,因此得到

选取的最佳阈值向量满足于

二维最大熵法利用了图像的灰度值信息

和邻域空间的相关信息,其效果较传统方法

有明显改善。由于最大熵法涉及对数运算,

且将一维信息的搜索拓展为二维信息的搜索,

导致运算量按指数增加,运算速度慢,难以

用于实时处理。

2.2.4 最小误判概率法

许多图像分割可以视做模式识别问题,

运用模式识别的决策理论求解分割的最佳灰

度门限,比如利用最小误差法可以确定分割

的最佳门限。

图像的灰度直方图可以看作组合对象和

背景像素灰度混合分布的概率密度函数p(z)。

通常假定混合分布的两个分量p(z/1)和

p(z/2)都是正态分布,其均值、标准偏差和

先验概率分别为

1

u、

2

u、

1

σ、

2

σ、

1

P和

2

P,

即有

其中

已知P(z/i)和Pi,就存在一个阈值t,满足

这个灰度t就是Bayes极小误差阈值。将上

式两边取对数有

解这个方程可以找到最佳阈值。混合分布

(2.22)的参数

i

u、

i

σ和Pi(i =1,2)

与待分

割的图像有关,下面是一个求解最佳阈值中

较为简单的方法。

设有一阈值t,0 < t

二值化后灰度级的条件概率 e(z,t)可以表

示为

式中分母项 h (z)与i和t无关,可以忽略,

再对上式两边取对数,并将结果乘以-2,将

它是反映正确分类性能的一种测量量。

在此基础上,可定义一个判别函数以描述整

幅图像上平均的正确分类性能。

对一个已知的阈值t,判别函数间接地

反映了对象和背景类分布的高斯模型间的交

叠量。将上式代入,则有

再将公式(2.26)~(2.28)代入上式,得

(2.16)

(2.17)

(2.18)

(2.19)

(2.20)

(2.21)

(2.22)

(2.23)

(2.25)

(2.26)

(2.27)

(2.28)

(2.29)

(2.30)

(2.31)

(2.32)

使判别函数取极小值的灰度值thre,将是有最小误差的阈值,即

2.3 几种阈值分割算法实验结果

图2.2 从上往下依次为:原图、直方图法、最大熵法、最小误差

3.遗传算法

3.1 遗传算法基本概念

遗传算法(GA)是由美国 Michigan 大学的 Holland 教授在 20 世纪 60 年代提出的,它是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。遗传算法是将问题的求解表示成“染色体”,将其置于问题的“环境”中,根据适者生存的原则,从中选择出适应环境的“染色体”进行复制,即再生,通过交叉、变异两种基因操作产生出新一代更适合环境的“染色体”群,这样一代代不断改进,最后收敛到一个最适合环境的个体上(当然也有其它的收敛准则),求得问题的最佳解。3.2 遗传算法实现过程

遗传算法具有 5 个基本要素:初始种群的设定、编/解码、适应度函数的设定、遗传操作(选择、交叉、变异)、控制参数的设定。

3.2.1 编码

编码是遗传算法的基础,编码的好坏直接影响选择、交叉、变异等遗传运算。编码方法也很多,有二进制编码、格雷码编码、浮点数编码、多参数级联编码、多参数交叉编码。本论文采用二进制编码。二进制编码

使用的编码符号集是由二进制符号 0 和 1

所组成的二值符号集{0,1},它所构成的个

体基因型是一个二进制编码符号串。二进制

编码符号串的长度与所要求的求解精度有关。

3.2.2 初始种群

随机产生N 个初始串结构数据,每个串结构数据称为一个个体,也称为染色体,N 个个体构成一个种群。

3.2.3 适应度函数

在遗传算法中使用适应度来度量群体中

各个个体在优化计算中能达到或接近于或有

助于找到最优解的优良程度。适应度较高的

个体遗传到下一代的概率就较大,反之就小。度量个体适应度的函数称为适应度函数。

3.2.4 遗传操作

遗传算法有三个基本操作:选择、交叉、变异。

1、选择

选择的目的是为了从当前群体中选出优

良个体,使它们有机会作为父代为下一代繁

殖子孙。根据各个个体的适应度值,按照一

定的规则或方法从上一代群体中选择出一些

优良个体遗传到下一代群体中。

基本遗传算法使用比例选择算子。比例

选择因子是利用比例于各个个体适应度的概

率决定其子孙的遗留可能性。若设种群数为M,个体i的适应度为fi,则个体i被选取

的概率为

i i

1

P=f/

M

k

k

f

=

∑。当个体选择的概率给

定后,产生[0,1]之间的均匀随机数来决定

哪个个体参加交配。若个体的选择概率大,

则能被多次选中,它的遗传基因就会在种群

中扩大;若个体的选择概率小,则被淘汰。

经典遗传算法中常采用轮盘赌的选择方法,实际上也是比例选择算子。其基本步骤为:先计算群体中所有个体的适应度总和;

再计算每个个体的相对适应度大小,即为各

个个体被遗传到下一代群体中的概率;最后

使用模拟赌盘操作(即 0 和 1 之间的随机数)来确定各个个体被选中的次数。

2、交叉

在生物的自然进化过程中,两个同源染

色体通过交配而重组,形成新的染色体,从

而产生出新的个体或物种。交配重组是生物

遗传和进化过程中的一个主要环节。模仿这

个环节,遗传算法中使用交叉算子来产生新

的个体。交叉又称重组,是按较大的概率从

群体中选择两个个体,交换两个个体的某个

或某些位。交叉运算产生子代,子代继承了

父代的基本特征。交叉算子的设计包括如何

确定交叉点位置和如何进行部分基因交换两

个方面的内容。遗传算法中所谓的交叉运算,是指对两个相互配对的染色体按某种方式相

互交换其部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其它进化运算的

重要特征,它在遗传算法中起着关键作用,

是产生新个体的主要方法。

遗传算法中,在交叉运算之前还必须先

对群体中的个体进行配对。目前常用的配对

算法是随机配对,即将群体中的M 个个体以随机的方式组成?M /2?对配对个体组,其中?X?表示不大于X的最大整数。交叉操作是在这

些配对个体组中的两个个体之间进行的。

交叉算子的设计和实现与具体问题有关,常见的交叉算子有:单点交叉、两点交叉、

多点交叉、均匀交叉、算术交叉。

3、变异

在生物的遗传和自然进化过程中,其细

胞分裂复制环节有可能会因为某些偶然因素

的影响而产生一些复制差错,这样会导致生

物的某些基因发生变异,从而产生出新的染

色体,表现出新的生物性状。

变异是以较小的概率对个体编码串上的某个

或某些位值进行改变,如二进制编码中“0”变为“1”,“1”变为“0”,进而生成新个体。在遗传算法中也引入了变异算子来产生

新的个体。遗传算法中所谓的变异运算,是

指将个体染色体编码串中的某些基因座上的

基因值用该基因座的其它等位基因来替换,

从而形成一个新的个体。

遗传算法中使用变异算子主要有以下两

个目的:

(1)改善遗传算法的局部搜索能力。交叉运算是产生新个体的主要方法,它决定了遗传算

法的全局搜索能力;而变异运算只是产生新

个体的辅助方法,但它也是必不可少的一个

步骤,因为它决定了遗传算法的局部搜索能力。交叉算子与变异算子相互配合,共同完

成对搜索空间的全局搜索和局部搜索,从而使得遗传算法能够以良好的搜索性能完成最

优化问题的寻优过程。

(2)维持群体的多样性,防止出现早熟现象。变异算子用新的基因值替换原有基因值从而

可以改变个体编码串的结构,维持群体的多

样性,这样有利于防止出现早熟现象。变异

算子使得遗传算法在接近最优解邻域时能加

速向最优解收敛,并可以维持群体多样性,

避免未成熟收敛。

3.2.5 遗传算法的运行参数

遗传算法的运行参数选择非常重要,参

数不同遗传算法的性能就不同。基本遗传算

法有下列 4 个运行参数需设定,即M 、T 、Pc、Pm。

M 为群体大小。群体大小直接影响到遗

传算法的收敛性或计算效率。规模过小,容

易收敛到局部最优解;规模过大,会造成计

算速度降低。为此,群体大小一般取为

10~200。

T为终止进化代数。它表示遗传算法运

行到指定的进化代数之后就停止运行并将当

前群体中的最佳个体作为所求问题的最优解

输出。为此,终止进化代数一般取为 100~500。

Pc 为交叉概率。交叉概率控制着交叉操作被使用的频度。较大的交叉概率可使各代

充分交叉,但群体中的优良模式遭到破坏的

可能性增大,以致产生较大的代沟,从而使

搜索走向随机化;交叉概率越低,产生的代

沟就越小,这样将保持一个连续的解空间,

使找到全局最优解的可能性增大,但进化速

度变慢;若交叉概率太低,就会使得更多的

个体直接复制到下一代,遗传搜索可能陷入

停滞状态。为此,交叉概率一般取为0.4~0.99。

Pm 为变异概率。变异概率控制着变异操作被使用的频度。变异概率取值较大时,虽

然能够产生较多的个体,增加了群体的多样性,但也可能破坏很多好的模式,使得遗传

算法的性能近似于随机搜索算法的性能;若

变异概率取值太小,则变异操作产生新个体

和抑制早熟现象的能力就会较差。实际中发现,当变异概率很小时,解群体的稳定性好,一旦陷入局部极值,易产生成熟收敛;而增

大变异概率,可破坏解群体的同化,使解空

间保持多样性,搜索过程可从局部极值点跳

出来,收敛到全局最优解。为此,变异概率

一般取为0.0001~0.1。

3.2.6 遗传算法的终止

因为遗传算法是随机搜索算法,找到一个正式的、明确的收敛性判别标准是困难的。常用方法是遗传算法终止采用达到预先设定的最大代数和根据问题定义测试种群中最优个体的性能。如果没有可接受的解答,遗传算法将重新启动或用新的搜索初始条件。

4. 基于遗传算法的最大类间方差图像分割方法 4.1 图像的阈值处理 一幅图像包括目标物体、背景还有噪声,如何从多值的数学图像中只取出目标物体,最常用的方法就是设定某一阈值T ,用T 将图像的数据分成两大部分:大于T 的像素群和小于T 的像素群。这种图像灰度变换的方法称为图像的二值化。二值化处理就是把图像f (x,y)分成目标物体和背景两个领域。二值化是数学图像处理中一项最基本的变换方法,通过非零取一、固定阈值、双固定阈值等不同的阈值化变换方法,把一幅灰度图变成黑白二值图像,将我们所需的目标部分地从复杂的图像背景中脱离出来。 4.2 最大类间方差法及采用遗传算法的原因 最大类间方差法是一种能自动确定阈值的图像分割方法。其基本思想是:把图像中的像素按灰度值用阈值t 分成两类 C0和 C1,C0由灰度值在0~t 之间的像素组成,C1由灰度值在t+1~ L ?1之间的像素组成,按下式计算 C0和 C1之间的类间方差:

式中:1w (t)为C0中所包含的像素数;

2w (t)为C1中所包含的像素数;1u (t)为C0中所有

像素数的平均灰度值;2u (t)为C1中所有像

素数的平均灰度值;从0~L ?1依次改变t 值,取使σ为最大的t 值为最佳阈值T ,即: 最大类间方差法的核心是计算类间方差,图像的灰度级别越多,计算方差的次数也就越多,其适应度选取的时间也越长。

遗传算法是借鉴生物的自然选择和遗传进化机制而开发出的一种全局优化自适应概率搜索算法,它使用群体搜索技术,通过对当前种群施加选择、交叉、变异等操作,逐步使群体进化到最优解状态。采用遗传算法

做适应度选取的具体原因如下:

1、许多传统的搜索方法都是单点搜索,

这种点对点的搜索方法,对于多峰分布的搜索空间常常会陷于局部的某个单峰的极值点。相反,遗传算法采用的是同时处理群体中多个个体的方法,即同时对搜索空间中的多个解进行评估。这一特点使遗传算法具有较好的全局搜索性能,也使得遗传算法本身易于并行化。 2、遗传算法在搜索过程中不容易陷入局部最优。即在所定义的适应度函数是不连续的、非规则的或有噪声的情况下,也能以很大的概率找到全局最优解。 3、不需要辅助信息。遗传算法仅用适应度函数的数值来评估基因个体,并在此基础上进行遗传操作。更重要的是,遗传算法的适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。 4.3 算法设计流程 基本遗传算法处理的对象主要是个体,其中包括染色体长度 lchrom ,染色体串 chrom ,种群大小 popsize ,当前代种群 oldpop ,个体适应度 fitness ,交叉概率 cross_rate ,变异概率 mutation_rate ,最

大代数 maxgen ,代数 gen 。

遗传算法的主要步骤:选择初始种群、

编码、构造适应度选取函数、选择、交叉、

变异。一代种群通过遗传,即选择、交叉和变异产生下一代种群。新种群又可重复上述

的选择、交叉和变异遗传过程。将遗传算法应用于图像分割求取最优分割阈值,其算法

设计流程与算法框图分别如下:

第一步:初始种群的产生。产生初始种群通常有两种方法。一种是完全随机的产生,

它适合于对问题的解无任何先验知识的情况,某些先验知识可转变为必须满足的一组要求,

然后在满足这些要求的解中随机选取样本,从而使遗传算法达到最优解。本论文初始化

(4.2)

种群思想:首先随机生成一个 1*8 的矩阵,然后对其进行灰度变换,灰度大于 0.5 的使 其为 1,反之为 0。

第二步:编码。由于图像灰度值在 0-255 之间,此时就需将一维阈值分割中的 8 位二进制码改为 16 位,前 8 位代表一个阈值,后 8 位代表一个阈值。

第三步:解码。将 16 位二进制码的高 8 位解码为前一个阈值,后 8 位解码为另一个阈值。

第四步:适应度选取函数。适应度选取函数要能反映个体的进化优良程度,即个体有可能达到或接近问题的最优解程度,它在遗传算法中是对个体进行遗传操作的依据,因此对算法的效率和性能会产生直接影响。

本论文将公式(4.3)作为适应度选取函数。

首先,把图像中的个体按灰度值分成两类图像。一类是目标图像,如公式(4.3)中的1w (t );另一类是背景图像,如公式(4.3)中的2w (t),并分别统计目标图像、背景图像灰度值的个体个数。 其次,分别求取两类图像的平均灰度值。如(4.3)中,

最后,得出适应度选取函数。

第五步:选择算子。本论文采用精英选择操作。在遗传算法里,精英选择是一种非常成功的产生新个体的策略,它是把最好的若干个个体作为精英直接带入下一代个体中,而不经过任何改变。当代数小于 50 代时用上一代中适应度值大于当前代的个体代替当前代中的最差个体;当代数为 50~100 时用上一代中适应度值大于当前代的个体代替当前代中的最差个体;当代数大于 100 时用上一代中的优秀个体的一半代替当前代中最差的一半。

第六步:交叉算子。本论文先确定交叉率,然后本代与本代的随机位置交叉。

第七步:变异算子。本论文采用二进制编码。变异就是按位取反,变异操作控制新

基因引入种群的比例。变异概率太低,一些有用的基因可能不能引入,变异概率太高,后代可能失去双亲的优良特性。因此,本文首先确定总基因个数,再确定发生变异的基因数目,然后将需变异的基因位按位取反。

第八步:终止准则。本论文采用最大进化代数控制算法的终止,设定最大代数为 150。

第九步:其它参数设定。染色体长度 lchrom=8、种群大小 popsize=10、交叉概率cross_rate=0.7、变异概率mutation_rate=0.4。

图4.1 遗传算法流程框图 主要Matlab 程序:

clear, close all

B=imread('she.jpg');

%读入原始jpg 格式图像 NIND=40; %个体数目(Number of individuals) MAXGEN=50;

%最大遗传代数(Maximum number of generations) PRECI=8; %变量的二进制位数(Precision of variables) GGAP=0.9; %代沟(Generation gap) FieldD=[8;1;256;1;0;1;1];

%建立区域描述器(Build field descriptor) Chrom=crtbp(NIND,PRECI); %创建初始种群 gen=0;

phen=bs2rv(Chrom,FieldD); %初始种群十进制转换 ObjV=target(Z,phen); %计算种群适应度值 while gen

%分配适应度值(Assign fitness values)

SelCh=select('sus',Chrom,FitnV,GGAP); %选择 SelCh=recombin('xovsp',SelCh,0.7); %重组

(4.3)

SelCh=mut(SelCh); %变异 phenSel=bs2rv(SelCh,FieldD); %子代十进制转换 ObjVSel=target(Z,phenSel);

[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);

%重插入

gen=gen+1; end

[Y, I]=max(ObjV);

M=bs2rv(Chrom(I,:),FieldD); %估计域值 [m, n]=size(Z); for i=1:m for j=1:n

if Z(i,j)>M %灰度值大于域值时是白色 Z(i,j)=256; end end end

figure(4) %画出分割后目标图像 image(Z),title('分割后图像'); colormap(map1);

4.4仿真结果与分析 1、仿真结果

本文分别采用 963*862、2304*3072、640*480 及 2304*3072 的彩色图像在 MATLAB7.1的平台上进行实验,采用基于遗传算法的图像分割方法及适应度选取求取最优阈值。在程序主函数中,首先读入图片,然后给出染色体长度、种群大小、交叉概率、变异概率及最大代数的初始值,接着按照遗传算法操作流程框图思想开始初始化种群、产生新一代个体、计算适应度并排序、进行选择/交叉/变异操作,最后求得最佳阈值并输出优化后的图像结果。下面的图4.2、图4.3、图4.4 和图4.5分别是标准图像与采用遗传算法操作后求取最优阈值的图像。

图4.2 标准图像(左)与分割图像(右)

4.3

标准图像(左)与分割图像(右)

图4.4 标准图像(左)与分割图像(右)

图4.5 标准图像(左)与分割图像(右)

2、分析比较 分析一:

以图 4.5、图4.2 为例比较未采用遗传算法的图像分割、基于遗传算法的图像分割的结果(前提:同一仿真平台)。结果如下: (1) 用遗传算法做图像分割在存储空间上比未采用遗传算法的图像分割好。

(2) 遗传算法同时对多个个体进行处理,故遗传算法具有较好的全局搜索性。 (3) 遗传算法采用适应度函数,对个体进行分割,能求得最优解,即获得最佳分割点。 分析二:

现以图4.5为例,当改变交叉概率、变异概率、最大代数中任意一个或两个参量时,图像的运行时间、最佳适应度值进化曲线、每一代的最佳阈值进化曲线将发生相应变化,如表4.1、4.2 所示。

情况一:交叉概率、变异概率不变,最

大代数改变。

情况二:交叉概率、变异概率改变,最大代数不变。

5.总结

本论文介绍了图像分割和遗传算法的基本知识点,重点研究了各种基于阈值选取的图像分割方法。针对各种方法的优缺点及最佳阈值选取的需要提出了一种基于遗传算法的图像分割方法,并在 MATLAB7.1 平台上对该算法进行仿真,达到了较好的效果。

1、图像分割是图像处理和前期视觉中的基本技术,是大多数图像分析和视觉系统的重要组成部分。图像分割是应用一种或多种运算将图像分成一些具有相似特性(如颜色、纹理、密度等)的区域,主要有阈值法和区域法。前者是利用灰度频率对分布信息进行分割,如:直方图法、一维二维最大熵法、最大类间方差法等等。后者是利用局部空间信息进行分割,将具有相似特性的像素集合起来构成区域,主要有区域生长法和分裂合并法。上述各种图像分割方法既有优点也有缺点,我们在实际应用中应根据课题的需要选取不同的图像分割方法。

2、遗传算法是模拟自然界机制和生物进化论而形成的一种搜索最优解的算法。它不需要求解问题的任何信息而仅需目标函数的信息,不受搜索空间是否连续或可微的限制。通过产生初始群种,计算个体适应度,依据适应度选择再生个体,按照一定的交叉与变异概率和方法生成新的个体。实验表明,遗传算法作为一种优化算法用于图像分割时,可以大大缩短寻找阈值的时间,性能稳定,有着广阔的发展应用前景。

参考文献:

[1] 贺兴华,周媛媛等.MATLAB7.X 图像处理[M].北京:人民邮电出版社.2006.11

[2] 章毓晋.图像处理和分析[M].北京:清华大学出版社.1999.2

[3] 胡兴林.一种运动目标的高精度测量算法[D].武汉科技大学硕士学位论文.2005.5

[4] 雷英杰,张善文等.MATLAB 遗传算法工具箱及应用[M].西安:西安电子科技大学

出版社.1999.2

[5] 乐宋进,武和雷,胡泳芬.图像分割方法的研究现状与展望[J].南昌水专学报.2004.6

[6] 严学强,叶秀清,刘济林.基于量化图像直方图的最大熵阈值处理算法[J].模式识别

与人工智能.1998.11

[7] 薛景浩,章毓晋.基于最大类间后验交叉熵的阈值化分割算法[J].中国图像图形学

报.1999.10

[8] 俞勇,施鹏飞,赵立初.基于最小能量的图像分割方法[J].红外与激光工程.1999.28

[9] 任明武,杨静宇,孙涵.一种基于边缘模式的直方图构造新方法[J].计算机研究与发

展.2001.8

[10] 程杰.一种基于直方图的分割方法[J].华中理工大学学报.1999.1

[11] 付忠良.基于图像差距量的阈值选取方法[J].计算机研究与发展.2001.5

[12] 李弼程,彭天强等.智能图像处理技术[M].北京:电子工业出版社.2004.7

相关文档
最新文档