基于模糊理论的图像分割算法研究(13)
作者:佚名; 更新时间:2014-12-05
数目(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<MAXGEN                                                %代沟(Generation gap)

    FitnV=ranking(-ObjV);                        %分配适应度值(Assign fitness values)

    SelCh=select('sus',Chrom,FitnV,GGAP);                                    %选择

    SelCh=recombin('xovsp',SelCh,0.7);                                        %重组

    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);

target求适应度函数代码:

function f=target(T,M)                     %适应度函数,T为待处理图像,M为域值序列

[U, V]=size(T);

W=length(M);

f=zeros(W,1);

for k=1:W

    I=0;s1=0;J=0;s2=0;                     %统计目标图像和背景图像的像素数及像素之和

    for i=1:U

        for j=1:V

            if T(i,j)<=M(k)

                s1=s1+T(i,j);I=I+1;

            end

            if T(i,j)>M(k)

                s2=s2+T(i,j);J=J+1;

            end

        end

    end

    if I==0,  p1=0;  else p1=s1/I; end

    if J==0,  p2=0;  else p2=s2/J; end

    f(k)=I*J*(p1-p2)*(p1-p2)/(256*256);

end;

核心期刊快速发表
Copyright@2000-2030 论文期刊网 Corporation All Rights Reserved.
《中华人民共和国信息产业部》备案号:ICP备07016076号;《公安部》备案号:33010402003207
本网站专业、正规提供职称论文发表和写作指导服务,并收录了海量免费论文和数百个经国家新闻出版总署审批过的具有国内统一CN刊号与国际标准ISSN刊号的合作期刊,供诸位正确选择和阅读参考,免费论文版权归原作者所有,谨防侵权。联系邮箱:256081@163.com