ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:784.03KB ,
资源ID:14558665      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14558665.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图像分割人工智能大作业Word下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图像分割人工智能大作业Word下载.docx

1、基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。其中比较典型的方法是基于阈值的分割方法,在实际的应用中,阈值分割的方法也往往能取得好的分割效果,很大程度上影响着后续的图像处理和图像分析的效果,图像阈值分割是指能够找到一个能把图像分割为目标和背景的最优阈值。图像阈值分割方法一般根据不同理论将问题转化,根据不同的理论,阈值分割一般先构造一个评价函数,然后求解关于这个函数的最优化问题,因此许多利用群体智慧的算法也被应用到了阈值分割中,例如蚁群算法,神经网络算法,遗传算法,在此我将遗传算法应用到了图像的阈值分割中。2. 问题表示与算法描述在算法中根据遗传算法的原

2、理结合图像的特征,将图像中的每一个像素看作一条染色体,并对每一条染色体进行编码,然后通过交叉变异的方法找到最优解。遗传算法主要包括四个部分:1. 编码和种群的初始化,一般采用二进制的方法进行编码,种群的初始化即是指产生一组可行解X,X是n*m大小的矩阵,n是种群的大小,m是染色体的长度,X的每一个行向量代表一个染色体;2. 定义适值函数,选择个体。由适值函数可以计算出每个染色体(即可行解)的适值,按一定的选择机制f对新种群中的染色体进行选择,得到进化后的种群X=f(X);3. 交叉变异运算,交叉运算在种群体中按照交叉率选择出父体,这些父体两个一组,在每组染色体中随机选择一个或多个点进行基因交换

3、,变异运算在种群中按变异率选出染色体,在每个选出的染色体中随机选择一个或多个点,并改变该点的基因,种群X经过交叉变异运算得到一个新种群X,X为n*m矩阵;4. 终止条件将X的值赋给X,重复进行交叉变异运算和定义适值函数并选择个体,直到满足一定的终止条件。图像中的每个像素可以看作是一个染色体,对像素的灰度值进行编码后可得到染色体的基因序列。染色体应该向着适值最大的方向进化,即在进化过程中越来越适应环境,会产生一个最优的阈值,但最优阈值事先无法确定,所以染色体进化的方向也无法确定,即遗传算法无法进行。所以首先设置一个初始阈值,让个体向着这个阈值代表的方向进化,然后根据选择机制选择出来的新群体更新阈

4、值。群体代表了图像的灰度值特征,阈值更新后应将群体复原。随着阈值的不断更新,群体的进化最后趋于稳定。当群体每次进化得到的阈值趋于稳定时,则说明该阈值是最优的阈值。下面对每一阶段做详细的介绍。 编码和种群的初始化在文中是对灰度图像进行处理,灰度值的取值范围为0255,故用二进制表示,染色体的长度L应该为8,染色体的值可用一个向量表示,如若一点的灰度值为255,则染色体的向量可以表示为x=1 1 1 1 1 1 1 1。在进行算法计算之前,先生成初始种群,随机生成种群,种群大小为n。在最开始时生成初始种群,随机生成n个染色体。 X=x(i)=round(rand(1,L)其中rand(1,L)是指

5、生成L个取值为01的数,round是指在一定的阈值th下,小于th的数值为0,大于th的数值为1,round将x(i)化为了只包含0,1取值的向量,即将向量的值用二进制表示。 定义适值函数更新种群个体定义适值函数,对合适的个体进行筛选,设种群X对应的图像灰度值为Y(Y是n*1的向量),则x(i)对应的图像灰度值为y(i),y(i)是标量,用0L之间的正数来初始化阈值T0=L*rand(1),T0为初始阈值,Ti为进化了i次后得到的阈值(i=1,2,3),进化了i次后,每条染色体对应的适应值为 f(i)=1/(|yi-T(i-1)|+1),f(i)(0,1,i=1,2,3,n其中|yi-T(i-

6、1)|是像素值与阈值的差的绝对值。计算出适应值后,将适应值进行如下的累加计算,生成新的适应值矩阵Fn。 Fn=f1,f2,f3,fi随机产生一个1*n的矩阵,矩阵中的元素值取值01,并将矩阵中元素按照值的大小从小到大排列,如下所示。Ms=ms1,ms2,,msn,其中ms1ms2msn接下来进行种群的更新,将新的适应值矩阵元素与产生的随机矩阵的元素做对比,判断是否淘汰不合格的染色体,产生新的种群 X(i); Ms(i)Fn(i)其中X(i)为原始种群,NX(i)为更新后的种群,在更新的过程中淘汰掉了不适合的染色体,是生物进化论中“优胜劣汰”的应用。使群体向最优化更适应的方向进化。在更新产生了新

7、的群体后,需要对阈值也进行一次更新,在进化了i次后得到新的阈值的公式为T=(i/(i+1)*T+(1/(i+1)*Ti,Ti是根据新的种群所求得的值,Ti=(NX(i)/n。 交叉变异运算交叉和变异是有单点和多点的,因为灰度像素值化成二进制后染色体较短,故使用单点交叉变异,进行交叉时,要首先设定好交叉率,根据交叉率选出染色体,然后两个染色体一组进行交叉,每组染色体的交叉点是随机产生的,然后从该点将2条染色体截断,并将截断部分进行交换得到两条新的染色体,例如染色体x1=0 0 1 0 1 0 0 1,x2=0 1 0 0 0 1 1 0,交叉点为左起第五个基因,则经交叉运算后得到2个新的染色体,

8、x1=0 0 1 0 0 1 1 0,x2=0 1 0 0 1 0 0 1。交叉进行完后根据变异率选择出染色体,对每个选出的染色体首先随机产生一个变异点,然后将该点对应的基因进行逻辑非运算,即可得到变异后的新个体。产生了新的种群。 算法流程 本文的算法对灰度图像进行分割处理,所用算法为遗传算法,算法具体进行的流程如下:1. 产生初始种群X;2. 初始化最优阈值T和初始阈值T0,这里T=T0;3. 对种群进行适应度的计算并筛选染色体得到新的种群X,计算Ti;4. 对新的种群X按照交叉率和变异率进行交叉和变异运算,得到新的种群5. X;6. 更新T的值,T=(i/(i+1)*T+(1/(i+1)*

9、Ti;7. 迭代次数是否到了n次,若足够n次了,就跳出,得到T的值,若不够n次,则继续进行35的步骤。3. 算法实现程序说明如图,为本系统实现的程序清单,共包括九个m文件,其中imasegment.m是算法处理的主程序;initpop.m是产生初始种群的函数,初始种群值为二进制数;calfitval.m是计算适应值得函数;selection.m是根据适应值对种群进行更新;crossover.m是种群染色体进行交叉的函数; mutation.m是种群染色体进行变异的函数; Tvalue.m是对阈值T进行更新的函数; decodebinary.m和decodechrom.m是将二进制数转化为十进制

10、的函数。4. 程序实验结果分析对于此算法,我在matlab2011a平台上进行了实现,下面对实验的结果进行展示和分析,试验中所用灰度图片是我在网页上下载下来的三幅图像,如图(a)(b)(c)所示。(a) (b)(c)在此实验中的迭代次数设为800,通过多次运行程序发现若迭代次数太少,得出的阈值的值不稳定,随着迭代次数增多,阈值结果最后逐渐趋于一个稳定的值,但所付出的代价是花费了更多的时间,所以选一个较合适的迭代次数,800次。实验的初始阈值T0为所用图片的灰度平均值aver,准确的定位初始值,可以使结果更快的达到稳定状态。 aver=()/(M*N) 其中f(i,j)为图像的像素点的像素值,M

11、、N是图像的尺寸。T初始值等于T0的值。原始种群的染色体数量为500,当然原始种群的规模越大,所得到的阈值结果越稳定越准确,可是越大的种群规模所要付出的代价也是时间的消耗,故选择合适的种群数量500。遗传算法中的交叉率和变异率分别为0.8和0.2。在matlab平台上运行,结果如图(d)(e)(f)所示,为用遗传算法阈值分割后得到的二值图像。 (d) (e)(f)上面三幅图为阈值分割后的二值化图像,可以看到图像的特征在进行二值化阈值分割后都凸显了出来,但是从图(e)中看到,图像中还是存在很多噪点,这与原始图像的质量有一定的关系,但也与阈值的选取有关,所得的图像不够理想,但整体来看分割所得到的结

12、果还是比较好的,噪点也可以通过一些去噪的的算法将噪点消除。在对图像进行处理时分割图像的T的值变化情况如图(g)(h)(m)所示。(g)(h)(m)从上面的三幅图中可以看出,T的值在迭代次数较低时是很不稳定的跳变幅度较大,随着迭代次数的增多,T值逐渐趋于稳定,所得值即为所要求的阈值结果,可以从图中看出图(a)(b)(c)的阈值分别为133,130,128。所得结果较理想,可以实现比较好的阈值分割效果。5.程序清单imasegment.m%算法的主程序clf;clear;f=imread(image.tif); %读取一幅图像imshow(f);f0=double(f);fwidth,flengt

13、h,as=size(f);fsum=0;for i=1:fwidth for j=1:flength fsum=fsum+f0(i,j); endendaver=round(fsum/(fwidth*flength)popsize=500; %种群大小chromlength=10; %字符串长度pc=0.8; %交叉概率pm=0.2; %变异概率T0=aver*1023/255; %初始阈值aver*1023/255Ti=T0;pop=initpop(popsize,chromlength);800 %800为迭代次数 fitval=calfitval(pop,Ti); %计算适应度 newp

14、op,Ti=selection(pop,fitval,Ti); %选择,复制 Ti*255/1023; newpop=crossover(pop,pc); %交叉 newpop=mutation(pop,pc); %变异 T,T0=Tvalue(Ti,i,T0); %更新T的值 T*255/1023; y(i)=T*255/1023; z(i)=Ti*255/1023; x(i)=i; pop=newpop;figure,plot(x,y)figure,plot(x,z)T=round(T*255/1023)fwidth %将图像背景和前景分离 if(f(i,j)T) f1(i,j)=255; else f1(i,j)=0;figure,imshow(f1);initpop.m%实现群体初始化,popsize为群体大小,chromlength为染色体长度function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength); % rand随机产生每个单元为 0,1 行数为popsize,列数为chromlecalfitval.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1