💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞💞💞💞💞💞💥💥💥💥💥💥
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进;
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。
更多Matlab图像处理仿真内容点击👇
①Matlab图像处理(进阶版)
②付费专栏Matlab图像处理(初级版)
⛳️关注优快云海神之光,更多资源等你来!!
⛄一、改进的遗传算法与最大熵法结合图像分割简介
1 最大熵阈值分割原理
最大熵图像分割算法在图像质量较好和背景稳定变化时,可以取得比较理想的分割结果。对于灰度范围为0 ~ 255的病害叶片图像,假设图中灰度级低于t的像素点构成病斑区域( gi) ,灰度级高于t的像素点构成背景区域( Gi) ,则各个灰度级在两区域的分布概率分别为:
病斑区域和背景区域的熵分别为:
当熵函数取得最大值时,对应的灰度值T就是所求的最佳阈值,即
2 最大熵算法与GA相结合的图像分割方法
最大熵算法的求解原理是在解空间中找到一个最优解, 使得图像中目标与背景分布的熵最大。GA是一种基于生物自然选择和遗传机理的随机搜索算法,具有强大的全局最优解搜索能力和信息处理的隐并行性以及应用的鲁棒性。只要检测少量结构就能反映搜索空间较大的区域,并可获得稳定的最优解。GA是一个以适应度函数为依据,通过对种群中的个体施加遗传操作,实现种群内个体结构重组的迭代过程, 逐渐逼近最优解。将GA与最大熵算法相结合,能够得到病斑图像分割的最佳阈值。其病斑图像分割过程描述如下: ( 1) 数据输入。读入作物病害叶片图像,将其转换为灰度图像。( 2) 编码方式。将种群中的各个个体编码为8位二进制码,每个个体代表1个分割阈值,即用00000000 ~ 11111111之间的一个8位二进制代码代表一个图像分割阈值。( 3) 确定算法参数。种群规模n定为20,最小迭代次数为10。当迭代次数超过该值后,检查每代种群中最优个体适应度的变化, 若变化很小,即终止算法。在运算的初始阶段取较大的交叉概率( Pc= 0. 5) 和较小的变异概率( Pm= 0. 02 ) ,以便尽快搜索出最优个体。当迭代过程中种群个体的适应值难以继续增大时,将交叉概率减小10% 、变异概率增加20% ,由此可提高收敛速度,避免陷入局部极值。( 4) 种群规模设置。随机在0 ~ 255之间以同等概率生成n个个体I1~ In作为第1次寻优的初始种群。种群规模设置应该合理,若种群规模过大,则适应度评估次数增加,计算量增加; 种群规模过小,可能会引起未成熟收敛现象。( 5) 适应度函数设计。适应度函数是对个体进行遗传操作的依据,要能反映个体进化的优良程度,即个体有可能达到或接近问题最优解的程度。本算法采用式 ( 5) 作为适应度函数。( 6) 解码。对二进制个体组解码为0 ~ 255之间的实数,求其适应度值。( 7) 选择操作。选择操作先进行赌轮法,再采用精英策略。其具体过程为先计算各个体的适应度的总和S,再随机生成0 ~ S之间一个随机数k,然后从第1个个体开始累加,直到累加值大于该随机数k,此时最后一个累加的个体便是要选择的个体。如此重复形成用于繁殖的新种群 。( 8) 交叉操作。采用单点交叉,在I’1~ I’n中每次选取2个个体按设定的交叉概率进行交叉操作,生成新代的种群I″1~ I″n。( 9) 变异操作。采用基本变异算子,按设定的变异概率随机从I″1~ I″n中选择若干个个体,再随机从这些个体中选择某一位进行变异运算。从而形成新代种群I’‘‘1~ I’’'n。( 10) 对经过遗传操作后的个体采用小生境技术, 由于对适应度小的个体使用惩罚函数,可大幅提高其被淘汰的概率。( 11) 终止准则。没有满足某种停止条件,则继续上述操作,否则进入( 5) 。以迭代次数为终止条件,达到预定的最大迭代次数,则算法终止。当算法执行到最大进化代数 ( 或满足终止条件) ,种群中的最高适应度值仍未发生变化 ( 稳定条件) 时,算法停止运行,具有最高适应度值的个体即为分割阈值; 否则以新代种群I1~ In转到步骤( 5) 。本算法的终止准则,为当相邻2代的个体的平均适应度值小于0. 001时停止迭代。
⛄二、部分源代码
%利用最佳直方图熵法(KSW熵法)及传统遗传算法实现灰度图像二阈值分割
%主程序
%子函数cross_2d\ksw_2\mutation_2d\select_2d
% 初始部分,读取图像及计算相关信息
t = zeros(100,1);
for o = 1:1
tic
I=imread(‘lena.jpg’);
% I=imread(‘c.jpg’);
figure
figure(1),imshow(I);
I=rgb2gray(I);
hist=imhist(I); %显示图像数据柱状图
total=0;
for i=0:255
total=total+hist(i+1);
end
hist1=hist/total; %求每点的归一化//求像素为i的概率Pi
%
% 程序主干部分
%种群随机初始化,种群数取20,染色体二进制编码取16位
t0=clock;
population=20;
X00=round(rand(1,population)*255);
X01=round(rand(1,population)*255);
for i=1:population
X0(i,:)=[X00(i) X01(i)];
end
for i=1:population
if X0(i,1)>X0(i,2)
temp=X0(i,1);
X0(i,2)=temp;
X0(i,1)=temp;
else
end
adapt_value0(i)=ksw_2(X0(i,1),X0(i,2),0,255,hist1);
end
adapt_average0=mean(adapt_value0);
X1=X0;
adapt_value1=adapt_value0;
adapt_average1=adapt_average0;
%循环搜索,搜索代数取100
generation=100;
for k=1:generation
s1=select_2d(X1,adapt_value1);
s_code10=dec2bin(s1(:,1),8);
s_code11=dec2bin(s1(:,2),8);
[c10,c11]=cross_2d(s_code10,s_code11);
[v10,v11]=mutation_2d(c10,c11);
X20=(bin2dec(v10))';
X21=(bin2dec(v11))';
for i=1:population
X2(i,:)=[X20(i) X21(i)];
end
for i=1:population
adapt_value2(i)=ksw_2(X2(i,1),X2(i,2),0,255,hist1);
end
adapt_average2=mean(adapt_value2);
if abs(adapt_average2-adapt_average1)<=0.03
break;
else
X1=X2;
adapt_value1=adapt_value2;
adapt_average1=adapt_average2;
end
end
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]师韵,王震,王旭启,张善文.基于改进遗传算法的最大熵作物病害叶片图像分割算法[J].江苏农业科学. 2015,43(09)
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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合