一张图解释什么是遗传算法_[转载]遗传算法(图像分割)

该博客通过遗传算法实现图像分割,详细介绍了算法过程,包括读取图像、灰度化、种群初始化、遗传操作、交叉和变异等步骤,并展示了最佳适应度值的进化曲线和图像分割结果。
摘要由CSDN通过智能技术生成

functionmain()

clearall

closeall

clc

globalchrom oldpop fitness lchrom popsize cross_rate mutation_rate yuzhisum

globalmaxgen m n fit gen yuzhi A B C oldpop1 popsize1 b b1 fitness1 yuzhi1

A=imread('mh.jpg');%读入道路图像

%A=imresize(A,0.4);

B=rgb2gray(A);%灰度化

C=B;

C=imresize(B,0.1);%将读入的图像缩小

lchrom=8;%染色体长度

popsize=10;%种群大小

cross_rate=0.7;%交叉概率

mutation_rate=0.4;%变异概率

maxgen=150;%最大代数

[m,n]=size(C);

initpop;%初始种群

forgen=1:maxgen

generation;%遗传操作

end

findresult;%图象分割结果

%输出进化各曲线

figure;

gen=1:maxgen;

plot(gen,fit(1,gen));

title('最佳适应度值进化曲线');

%初始化种群%

functioninitpop()

globallchrom oldpop popsize chrom C

imshow(C);

fori=1:popsize

chrom=rand(1,lchrom);

forj=1:lchrom

ifchrom(1,j)<0.5

chrom(1,j)=0;

else

chrom(1,j)=1;

end

end

oldpop(i,1:lchrom)=chrom;

end

%产生新一代个体%

functiongeneration()

fitness_order;%计算适应度值及排序

select;%选择操作

crossover;%交叉

mutation;%变异

%计算适度值并且排序%

functionfitness_order()

globallchrom oldpop fitness popsize chrom fit gen C m n fitness1 yuzhisum

globallowsum higsum u1 u2 yuzhi gen oldpop1 popsize1 b1 b yuzhi1

ifpopsize>=5

popsize=ceil(popsize-0.03*gen);

end

ifgen==75%当进化到末期的时候调整种群规模和交叉、变异概率

cross_rate=0.3;%交叉概率

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值