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

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 problemsBeta_pos=zeros(1,dim);
Beta_score=inf; %change this to -inf for maximization problemsDelta_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_iterfor i=1:size(Positions,1)  % Return back the search agents that go beyond the boundaries of the search spaceFlag4ub=Positions(i,:)>ub;Flag4lb=Positions(i,:)<lb;Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;               % Calculate objective function for each search agentfitness=fobj(Positions(i,:));% Update Alpha, Beta, and Deltaif fitness<Alpha_score Alpha_score=fitness; % Update alphaAlpha_pos=Positions(i,:);endif fitness>Alpha_score && fitness<Beta_score Beta_score=fitness; % Update betaBeta_pos=Positions(i,:);endif fitness>Alpha_score && fitness>Beta_score && fitness<Delta_score Delta_score=fitness; % Update deltaDelta_pos=Positions(i,:);endenda=2-l*((2)/Max_iter); % a decreases linearly fron 2 to 0% Update the Position of search agents including omegasfor 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 1X1=Alpha_pos(j)-A1*D_alpha; % Equation (3.6)-part 1r1=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 2X2=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 3X3=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] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]赵勇,方宗德,庞辉,王侃伟.基于量子粒子群优化算法的最小交叉熵多阈值图像分割[J].计算机应用研究. 2008,(04)

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

  1. 【路径规划】基于matlab灰狼算法机器人栅格地图最短路径规划【含Matlab源码 2334期】

    ⛄一.灰狼算法的厂房巡检机器人路径规划简介 0 引言 近年来,我国各行各业的不断发展使相关工作流程得到了完善,其中巡检岗位是一个不可或缺的职位,尤其是在电厂.燃气厂房和煤矿等危险领域中的工作,更不能缺 ...

  2. 【路径规划】基于matlab灰狼算法机器人栅格地图最短路径规划【含Matlab源码 1761期】

    ⛄一.灰狼算法的厂房巡检机器人路径规划简介 0 引言 近年来,我国各行各业的不断发展使相关工作流程得到了完善,其中巡检岗位是一个不可或缺的职位,尤其是在电厂.燃气厂房和煤矿等危险领域中的工作,更不能缺 ...

  3. 【WSN定位】基于matlab灰狼算法优化无线传感器非测距定位【含Matlab源码 2008期】

    一.无线传感器网络DVHop定位算法简介 1 传统DV-hop算法定位算法原理 DV-hop算法中主要将节点分为锚节点与未知节点,锚节点在整个网络中占有一定的比例,因为锚节点本身带有GPS定位系统,而 ...

  4. 【多目标优化求解】基于matlab灰狼优化算法求解多目标优化问题 【含Matlab源码 007期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[多目标优化求解]基于matlab灰狼优化算法求解多目标优化问题 [含Matlab源码 007期] 获取代码方式2: 通过订阅紫极神光博客 ...

  5. 【优化布局】基于matlab免疫算法求解充电站最优布局【含Matlab源码 2539期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[生产调度]基于matlab免疫算法求解生产调度零等待问题[含Matlab源码 1178期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  6. 【单目标优化求解】基于matlab增强型黑猩猩优化器算法求解单目标优化问题【含Matlab源码 2013期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab增强型黑猩猩优化器算法求解单目标优化问题[含Matlab源码 2013期] 点击上面蓝色字体,直接付费下 ...

  7. 【微电网优化】基于matlab粒子群算法求解综合能源系统优化问题【含Matlab源码 1969期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[微电网优化]基于matlab粒子群算法求解综合能源系统优化问题[含Matlab源码 1969期] 点击上面蓝色字体,直接付费下载,即可. ...

  8. 【优化算法】基于matlab量子粒子群算法求解单目标优化问题【含Matlab源码 2203期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]基于matlab量子粒子群算法求解单目标优化问题[含Matlab源码 2203期] 点击上面蓝色字体,直接付费下载,即可. 获 ...

  9. 【雷达通信】基于matlab NCP算法SAR回波生成和成像【含Matlab源码 1185期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[雷达通信]基于matlab NCP算法SAR回波生成和成像[含Matlab源码 1185期] 点击上面蓝色字体,直接付费下载,即可. 获 ...

  10. 【优化布局】免疫算法求解充电站最优布局【含Matlab源码 2539期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[生产调度]基于matlab免疫算法求解生产调度零等待问题[含Matlab源码 1178期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

最新文章

  1. 一台电脑上同启动两个Tomcat的方式,windows/Linux配置
  2. pycharm和vs code的使用体验
  3. 启明云端分享|ESP32在开发环境时,环境搭建及应用、软件平台时常遇到的问题答疑(FAQ)
  4. (2) nginx信号量
  5. javascript 在对象中使用 定时器_如何使用JavaScript 面向对象编程
  6. (转)java动态代理与aop
  7. Java 中 Vector、ArrayList、List 使用深入剖析
  8. 自考--运筹学--计算题总结
  9. Android equal和==的区别
  10. View not attached to window manager---Android原生开发工作笔记133
  11. ZigBee网络数据传递流程_Zigbee网络架构解析
  12. Java Beanutils 配置
  13. 玩转基金(1)基金基础
  14. rup软件测试案例,胖子说RUP - 软件测试网 _领测软件测试网站-中国软件测试技术第一门户...
  15. 用Nodejs爬取Matrix67的博客
  16. 用这个方法解决Python多版本共存问题,简单粗暴
  17. 产品经理也要懂ASO
  18. 大学计算机作业互评评语简短,【同学互评评语100字】同学作业互评评语(2).doc...
  19. 人工智能学习(三):通过搜索进行问题求解——有信息搜索
  20. Kinect开发之PowerPoint播放助手

热门文章

  1. Selenium 三种等待
  2. 32位汇编第五讲,逆向实战干货,(OD)快速定位扫雷内存.
  3. imooc数据结构探险-栈篇 栈应用括号匹配二 由群友启发改良james_yuan老师算法
  4. dispaly 的block与inline-block的用法
  5. 自己定义了个一类似UISegment的东西
  6. letex编辑输出】pdf文件嵌入字体embedded fonts的问题
  7. Atitit 反模式 黑名单 异常处理 反模式(antipatterns) 目录 1.1. 记录并抛出(log and throw) 1 1.2. 抛出异常基类(Throwing Excepti
  8. Atitit 软件开发中的艾提拉思想与理念总结 后端优先 手机优先 做好政治动员 高层抽象 一定要出理论结果书籍总结 技术就是艺术 三个软件层次的划分 实现层 规划层 艺术层 无限生
  9. Atitit 概念还是技术更重要
  10. Atitit. Atiposter 发帖机 新特性 poster new feature v11  .docx