💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞💞💞💞💞💞💥💥💥💥💥💥
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进;
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。
更多Matlab图像处理仿真内容点击👇
①Matlab图像处理(进阶版)
②付费专栏Matlab图像处理(初级版)
⛳️关注优快云海神之光,更多资源等你来!!
⛄一、基于GA的多阈值自适应图像分割
1 遗传算法(GA)的工作流程
GA[3]是由美国科学家Holland提出的,其主要优点是简单、鲁棒性强,需要解决的问题越复杂,目标越不明确,优越性越大.遗传操作主要包括选择、交叉、变异3种基本操作,其基本工作流程如下:
- 随机生成初始种群,个体数目一定;
2)计算群体中每个个体的适应度,并判断是否符合预设的优化准则,若符合,输出最佳个体及其所代表的最优解,结束计算,否则继续进行;
-
依据适应度选择再生个体,适应度高的个体被选中的概率高,适应度低的个体被选中的概率低;
-
按照一定的交叉概率和交叉方法,生成新的个体;
-
按照一定的变异概率和变异方法,生成新的个体;
-
由交叉和变异产生的新个体组成新一代的种群,返回到2),继续进行计算.
GA的优化准则,一般依据问题的不同有不同的确定方式.通常采用的准则有:种群中个体的最大适应度超过预先的设定值;种群中个体的平均适应度超过预先设定值;进化代数超过预先设定值.
2 熵阈值分割在GA中的构造问题
将遗传算法用于前面所讨论的图像二维熵阈值选择[8],应首先解决以下两个问题:
-
如何将问题的解编码成染色体,即如何将多个阈值表示成染色体;
-
如何构造一个适应度函数来评价每个染色体的适应度,即如何评价每组阈值的分割效果.
因为采用灰度-区域灰度均值二维直方图进行分析,且分析对像是真彩色图像,即每个像素点都具有属于[0,255]的RGB共3个颜色分量,因此得到的阈值组是由多个6维向量(sRi,sGi,sBi,tRi,tGi,tBi)组成的,其中i=1,2,…,N-1,N为分割类别数.为避免过长的染色体带来计算上的复杂性,文中算法采用实数编码方式.这样,每条染色体的长度为6×(N-1)个整数码串.
熵判别函数被用来作为遗传算法的适应度函数,即F(s,t)=W(s,t).F(s,t)越大,说明分割效果越好,该染色体的适应度越高.
解决了上述2个问题后,只需按照遗传算法的流程执行即可.经过一定的迭代次数后,得到一个最佳的染色体.对该染色体解码,便可得到所需要的多个分割阈值.
3固定码长GA的多阈值分割
如果通过先验知识可以得知图像分割的类别数N(即需N-1个阈值进行分割),则可采用固定码长GA分割法,即用N-1个基因代表N-1个不同的分割阈值,编码成一个染色体.编码与适应度函数已在前面指出,这里只对选择、交叉和变异操作进行说明.
-
基于排名的选择操作:
根据个体的适应度在群体中的排名来分配选择概率,基于此概率采用转盘选择法; -
线性交叉:
交叉概率Pc取为0.3~0.4; -
均匀变异:
变异概率Pm取为0.1~0.2.
4 可变码长GA的自适应多阈值分割
如果在图像分割前不知道需要分割的类数或其很难确定,则要求分割方法能自动确定最佳分类数,本文采用的可变码长遗传算法便可以实现这一点.把图像分割的类别数即染色体的码长融合到适应度函数中,从而实现在对阈值寻优的同时得以优化分割类别数,最终实现图像的多阈值自适应分割处理.与固定码长的GA相比,主要在以下几个方面加以改进.
-
编码:
仍基于RGB分割阈值,但另需给出一最大码长Max N,即最大分割类数,则每个个体码长Ni的变化范围为1~Max N. -
适应度函数的改进:
如直接将式(11)的熵判别函数作为适应度函数,则不能同时对所分类数N进行优化.在此引入函数估计和学习系统理论中的模型复杂度概念[9],在原来熵函数的基础上乘一惩罚因子,提出如下启发式准则函数作为适应度函数:
FD=N−−√W(s∗1,s∗2,⋯,s∗N−1,t∗1,t∗2,⋯,t∗N−1). (14)
并由此进行基于排序的转盘选择.其中:N为分类数,W(·)为熵函数.
-
交叉操作的改进:
对进行交叉操作的染色体对的共同部分(即较短染色体长度范围内),进行一般的线性交叉;对共同部分以外的,即较长染色体长出的一部分,等概率地进行以下3种操作:丢弃,拼接在另一条染色体上,长度变短为某个随机值.后半部分操作包含了染色体长度的变化,从而使图像的分割类数自适应变化. -
变异操作的改进:
变异操作是在原均匀交叉方法的基础上加进了关于码长变异的操作,即等概率地使染色体长度变长或变短.其中,变长就是在其后拼接上一随机长度的向量,变短则可以简单地将染色体截断一段随机长度.当然变化后的染色体长度应在1~Max N范围内.
⛄二、部分源代码
clear ;
close all;
clc;
pc=0.7;%交叉概率
pm=0.05;%变异概率
NIND=40;%个体数目
MAXGEN=60;%最大遗传代数
NVAR=2;%变量的维数
PRECI=20;%变量的二进制位数
GGAP=0.9;%代沟
trace=zeros(MAXGEN,1);
%FieldD=[rep(PRECI,[1,NVAR]);[-3,4.1;12 .1,5.8];rep([1;0;1;1],[1,NVAR])];
FieldD=[20,20;0,0;10,10;1,1;0,0;1,1;1,1];
% FieldD=[20,20;-3,4.1;12.1,5.8;1,1;0,0;1,1;1,1];
imf=imread(‘cameraman.tif’);
figure
subplot(211);
imshow(imf)
imf=double(imf);
[row,colume]=size(imf);
Lmax=max(imf( : ));
Lmin=min(imf( : ));
%图像归一化处理
g_imf=(imf-Lmin)./(Lmax-Lmin);
Chrom=crtbp(NIND,NVAR*PRECI);
gen=0;
ObjV=ObjectFunction(bs2rv(Chrom,FieldD),g_imf,row,colume,Lmax,Lmin);
[maxY,I]=max(ObjV);
X=bs2rv(Chrom,FieldD);
maxX=X(I,:);
while gen<MAXGEN
gen
FitnV=ranking(-ObjV);
if maxY<max(ObjV)
[maxY,I]=max(ObjV);
X=bs2rv(Chrom,FieldD);
maxX=X(I,:);
end
trace(gen,1)=maxY;
end
H = betainc(g_imf,X(I,1),X(I,2));
subplot(212);imshow(H)
figure
plot(1:gen,trace(:,1));
hold on;
grid
xlabel(‘进化代数’);
ylabel(‘最优解变化’);
title(‘SGA进化过程’);
disp([‘最优值为:’,num2str(maxY)]);
disp([‘对应的自变量取值:’,num2str(X(I,:))])
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]常发亮,刘静,乔谊正.基于遗传算法的彩色图像二维熵多阈值自适应分割[J].控制与决策. 2005(06)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合