【图像分割】基于matlab灰狼算法最小交叉熵多阈值图像分割【含Matlab源码 903期】

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞💞💞💞💞💞💥💥💥💥💥💥
在这里插入图片描述
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进;
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式

⛳️座右铭:行百里者,半于九十。
更多Matlab图像处理仿真内容点击👇
Matlab图像处理(进阶版)
付费专栏Matlab图像处理(初级版)

⛳️关注优快云海神之光,更多资源等你来!!

⛄一、最小交叉熵多阈值图像分割简介

1 单阈值分割
设有两个概率分布P={p1, p2, …, pN}和Q={q1, q2, …, qN}, 交叉熵度量它们之间的信息量差异。其对称形式为
在这里插入图片描述
交叉熵既可看成是采用P取代Q作为单个系统概率分布时系统信息量变化的期望值, 也可看成是两个概率系统P和Q之间的信息量差异。因而可用最小交叉熵准则实现系统的概率分布估计或逼近。
现有的最小交叉熵分割方法原理是用P和Q分别表征分割前后的原始图和分割图;然后计算目标之间的交叉熵、背景之间的交叉熵;并取其和定义为原始图和分割图之间的交叉熵, 求最优阈值使交叉熵最小。
单阈值分割方法具体实现如下:
设阈值t 将原始图像 (L个灰度级) 的图像分为目标和背景两类, 图像一维直方图为h (i) (1, 2, …, L) , 令
在这里插入图片描述
则交叉熵判别函数定义为
在这里插入图片描述
其中:i是灰度值; t是阈值化时的阈值;u (1, t) 和u (t, L+1) 是类内均值, 分别代表分割后得到的分割图中目标和背景的灰度。
图像的最佳阈值:
t*=arg mint{D (t) } (10)

2 多阈值分割法
对复杂图像或者含有多个物体的图像进行分割处理, 需要用到多阈值分割, 可在前述单阈值的基础上进行推广, 将一维交叉熵应用于多阈值分割。设t1, t2, …, tn是分割阈值, 且有t1<t2<…<tn, 则多阈值交叉熵判别函数定义为
在这里插入图片描述
图像的最佳阈值:
(t1, t2, …, t*n) =arg mint{D (t1, t2, …, tn) } (12)

⛄二、部分源代码

%% 基于灰狼算法的最小交叉熵多阈值分割
clear all;
clc
rng(‘default’);
I = imread(‘lena.jpg’);%读取图像
SearchAgents_no=50; %种群数量

Max_iteration=100; % 最大迭代次数

dim = 4;%阈值个数

lb = ones(1,dim); %下边界1
ub = 255.*ones(1,dim);%上边界255
fobj =@(thresh)fun(I,thresh);%适应度函数

[Best_score,Best_pos,GWO_cg_curve]=GWO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
% Grey Wolf Optimizer
function [Alpha_score,Alpha_pos,Convergence_curve]=GWO(SearchAgents_no,Max_iter,lb,ub,dim,fobj)

% initialize alpha, beta, and delta_pos
Alpha_pos=zeros(1,dim);
Alpha_score=inf; %change this to -inf for maximization problems

Beta_pos=zeros(1,dim);
Beta_score=inf; %change this to -inf for maximization problems

Delta_pos=zeros(1,dim);
Delta_score=inf; %change this to -inf for maximization problems

%Initialize the positions of search agents
Positions=initialization(SearchAgents_no,dim,ub,lb);

Convergence_curve=zeros(1,Max_iter);

l=0;% Loop counter

% Main loop
while l<Max_iter
for i=1:size(Positions,1)

   % Return back the search agents that go beyond the boundaries of the search space
    Flag4ub=Positions(i,:)>ub;
    Flag4lb=Positions(i,:)<lb;
    Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;               
    
    % Calculate objective function for each search agent
    fitness=fobj(Positions(i,:));
    
    % Update Alpha, Beta, and Delta
    if fitness<Alpha_score 
        Alpha_score=fitness; % Update alpha
        Alpha_pos=Positions(i,:);
    end
    
    if fitness>Alpha_score && fitness<Beta_score 
        Beta_score=fitness; % Update beta
        Beta_pos=Positions(i,:);
    end
    
    if fitness>Alpha_score && fitness>Beta_score && fitness<Delta_score 
        Delta_score=fitness; % Update delta
        Delta_pos=Positions(i,:);
    end
end


a=2-l*((2)/Max_iter); % a decreases linearly fron 2 to 0

% Update the Position of search agents including omegas
for i=1:size(Positions,1)
    for j=1:size(Positions,2)     
                   
        r1=rand(); % r1 is a random number in [0,1]
        r2=rand(); % r2 is a random number in [0,1]
        
        A1=2*a*r1-a; % Equation (3.3)
        C1=2*r2; % Equation (3.4)
        
        D_alpha=abs(C1*Alpha_pos(j)-Positions(i,j)); % Equation (3.5)-part 1
        X1=Alpha_pos(j)-A1*D_alpha; % Equation (3.6)-part 1
                   
        r1=rand();
        r2=rand();
        
        A2=2*a*r1-a; % Equation (3.3)
        C2=2*r2; % Equation (3.4)
        
        D_beta=abs(C2*Beta_pos(j)-Positions(i,j)); % Equation (3.5)-part 2
        X2=Beta_pos(j)-A2*D_beta; % Equation (3.6)-part 2       
        
        r1=rand();
        r2=rand(); 
        
        A3=2*a*r1-a; % Equation (3.3)
        C3=2*r2; % Equation (3.4)
        
        D_delta=abs(C3*Delta_pos(j)-Positions(i,j)); % Equation (3.5)-part 3
        X3=Delta_pos(j)-A3*D_delta; % Equation (3.5)-part 3             
        
        Positions(i,j)=(X1+X2+X3)/3;% Equation (3.7)
        
    end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]赵勇,方宗德,庞辉,王侃伟.基于量子粒子群优化算法的最小交叉熵多阈值图像分割[J].计算机应用研究. 2008,(04)

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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值