⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a10.m

📁 用matlab写的遗传算法分割程序
💻 M
字号:
O=imread('Lenna.bmp');
figure(1);imshow(O);

NIND = 40; % Number of individuals
MAXGEN =50; % Maximum no. of generations
PRECI = 8; % Precision of variables
GGAP = 0.9; % Generation gap
% Build field descriptor
FieldD = [8;1;256;1;0;1;1];
% Initialise population
Chrom = crtbp(NIND, PRECI);
gen = 0;% Counter
phen=bs2rv(Chrom,FieldD);% Evaluate initial population
ObjV = target(O,phen);
while gen < MAXGEN,% Generational loop
% Assign fitness values to entire population
FitnV = ranking(-ObjV);
SelCh = select('sus', Chrom, FitnV, GGAP);% Select individuals for breeding
SelCh = recombin('xovsp',SelCh,0.7);% Recombine individuals (crossover)
SelCh = mut(SelCh);% Apply mutation
phenSel = bs2rv(SelCh,FieldD);% Evaluate offspring, call objective function
ObjVSel=target(O,phenSel);
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);% Reinsert offspring into population
gen = gen+1;% Increment counter
end
[Y,I]=max(ObjV);
M=bs2rv(Chrom(I,:),FieldD)
[m,n]=size(O);
for i=1:m
    for j=1:n
        if O(i,j)>M
            O(i,j)=256;
        end
    end
end
figure(2)
imshow(O);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -