📄 mainprog.m
字号:
%遗传算法主程序
%Name:genmain05.m
clear
q=imread('pic.bmp');
q2=imread('pic2.bmp');
figure,imshow(q);
figure,imshow(q2);
[q1,rect]=imcrop(q2);
imwrite(q1,'pic3.bmp','bmp');
imwrite(q,'pic1.bmp','bmp');
popsize=100; %设置初始参数,群体大小
chromlength=18; %字符串长度(个体长度),染色体长度
pc=0.6; %设置交叉概率
pm=0.6; %设置变异概率
pop=initpop(popsize,chromlength); %运行初始化函数,随机产生初始群体
dai=200;
for i=1:dai%20为迭代次数
[objvalue]=calobjvalue(pop);%计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
[newpop]=selection(pop,fitvalue); %复制
[newpop]=crossover(newpop,pc); %交叉
[newpop]=mutation(newpop,pm);%变异
[bestindividual,bestfit]=best(pop,fitvalue);%求出群体中适应值最大的个体及其适应值
c(i)=max(bestfit);
n(i)=i;
pop5=bestindividual;
x1(i)=decodechrom(pop5,1,9);
y1(i)=decodechrom(pop5,10,9);
pop=newpop;
end
z=[c
x1
y1];
x=z(2,1);
y=z(3,1);
r=z(1,1);
for i=2:dai
if z(1,i)>r
x=z(2,i);
y=z(3,i);
r=z(1,i);
end
end
q3=double(q)/255;
Q=q3;
[px,py]=size(q);
for i=1:px
for j=x+1:py
Q(i,j)=0;
end
end
figure,imshow(Q);
Q2=double(q2)/255;
[px1,py1]=size(q2);
for i=1:px1
for j=1:rect(1)-1
Q2(i,j)=0;
end
end
figure,imshow(Q2);
for i=1:700
for j=1:1000
backdrop(i,j)=0;
end
end
for i=1:px1
for j=1:x
backdrop(i,j)=Q(i,j);
end
t=x+py1-rect(1)+1;
l=round(rect(1));
for k=(x+1):t
backdrop(i,k)=Q2(i,l);
l=l+1;
end
end
figure,imshow(backdrop);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -