首页 > 编程语言 >基于秃鹰算法优化的最小交叉熵图像多阈值分割

基于秃鹰算法优化的最小交叉熵图像多阈值分割

时间:2024-09-28 22:23:49浏览次数:9  
标签:分割 阈值 交叉 最小 算法 秃鹰

智能优化算法应用:基于秃鹰算法优化的最小交叉熵图像多阈值分割

文章目录


摘要:本文介绍基于最小交叉熵的图像分割,并且应用秃鹰算法进行阈值寻优。

1.前言

阅读此文章前,请阅读《图像分割:直方图区域划分及信息统计介绍》https://blog.csdn.net/u011835903/article/details/108024753 了解基础知识,相关公式含义。

2.最小交叉熵阈值分割原理

1993 年,Li等人将交叉熵的概念引入到图像处理领域,提出了基于一维灰度级直方图的最小交叉熵阈值选取方法。该方法以分割后的图像与原图像的信息量差异最小为阈值选取准则,实质上是使分割前后图像的Kullback散度达到最小。交叉熵的计算公式为:
H ( t ) = ∑ i = 0 t i h i l n i u 0 ( t ) + ∑ i = t + 1 L − 1 i h i l n i u b ( t ) (1) H(t) = \sum_{i=0}^t ih_iln\frac{i}{u_0(t)} + \sum_{i=t+1}^{L-1} ih_iln\frac{i}{u_b(t)} \tag{1} H(t)=i=0∑t​ihi​lnu0​(t)i​+i=t+1∑L−1​ihi​lnub​(t)i​(1)
使式(1)取最小值的t值即为最佳阈值:
t ∗ = a r g m i n ( 0 ≤ t ≤ L − 1 ) { H ( t ) } (2) t^*=argmin_(0\leq t\leq L-1)\{H(t)\} \tag{2} t∗=argmin(​0≤t≤L−1){H(t)}(2)
推广到多阈值则为,寻找一组阈值 ( t 0 , . . . , t n ) (t_0,...,t_n) (t0​,...,tn​)使得熵值最小:
t ( 1 , . . , n ) ∗ = a r g m i n { H 0 + H 1 + , . . . + H n } (3) t(1,..,n)^*=argmin\{H_0+H_1+,...+H_n\}\tag{3} t(1,..,n)∗=argmin{H0​+H1​+,...+Hn​}(3)

3.基于秃鹰优化的多阈值分割

由上述交叉熵分割法的原理可知,要得到最终的阈值,需要去寻找阈值,熵值最小。于是可以利用智能优化算法进行阈值的寻优,使得获得最佳阈值。

于是优化的适应度函数就是:
f u n { t ( 1 , . . , n ) ∗ } = a r g m i n { H 0 + H 1 + , . . . + H n } (4) fun\{t(1,..,n)^*\}=argmin\{H_0+H_1+,...+H_n\}\tag{4} fun{t(1,..,n)∗}=argmin{H0​+H1​+,...+Hn​}(4)
设置阈值分割的个数,寻优边界为0到255(因为图像的像素值范围为0-255),设置相应的秃鹰算法参数
秃鹰算法原理请参考:https://blog.csdn.net/u011835903/article/details/113775430

4.算法结果:

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

5.参考文献:

[1]吴一全,孟天亮,吴诗婳.图像阈值分割方法研究进展20年(1994—2014)[J].数据采集与处理,2015,30(01):1-23.

6.Matlab 代码

标签:分割,阈值,交叉,最小,算法,秃鹰
From: https://blog.csdn.net/u011835903/article/details/142447941

相关文章

  • 代码随想录算法训练营第三天|203.移除链表元素,707.设计链表,206.反转链表
    203.移除链表元素文章链接:https://programmercarl.com/0203.移除链表元素.html#算法公开课视频讲解:https://www.bilibili.com/video/BV18B4y1s7R9题目出处:https://leetcode.cn/problems/remove-linked-list-elements/卡哥在这里讲解了为什么要使用虚拟头节点,以及使用和不使......
  • 算法复杂度-空间
    一.空间复杂度空间复杂度也是一个数学表达式,是对一个算法在运行过程中因为算法的需要额外临时开辟的空间。空间复杂度不是程序占用了多少个bytes的空间,因为常规情况每个对象大小差异不会很大,所以空间复杂度算的是变量的个数。空间复杂度的计算规则基本跟时间复杂......
  • 算法复杂度之时间复杂度
    一.数据结构前言1.1数据结构数据结构(Datastructure)是计算机存储,组织数据的方式,指互相之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以要学习各式各样的数据结构,如:线性表,树,图,哈希等。(不仅能存储数据,还能够管理数据)1.2算法......
  • 精通推荐算法31:行为序列建模之ETA — 基于SimHash实现检索索引在线化
    1 行为序列建模总体架构2SIM模型的不足和为什么需要ETA模型SIM实现了长周期行为序列的在线建模,其GSU检索单元居功至伟。但不论Hard-search还是Soft-search,都存在如下不足:GSU检索的目标与主模型不一致。Hard-search通过类目属性来筛选历史行为,但不同类目不代表相关度低,比......
  • 关于算法复杂度
    1.复杂度的概念算法在编写成可执⾏程序后,运⾏时需要耗费时间资源和空间(内存)资源。因此衡量⼀个算法的好坏,⼀般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。    时间复杂度主要衡量⼀个算法的运⾏快慢,⽽空间复杂度主要衡量⼀个算法运⾏所......
  • 无人机之视觉导航算法篇
    一、图像采集与预处理图像采集:无人机通过其搭载的摄像头或其他视觉传感器实时采集周围环境的图像信息。图像预处理:对采集到的图像进行预处理,包括滤波、降噪、增强等操作,以提高图像的质量和清晰度,为后续的特征提取和匹配奠定基础。二、特征提取与匹配特征提取:从预处理后的图......
  • 算法训练营第三天| 203.移除链表元素、707.设计链表、206.反转链表
    203.移除链表元素状态:完成个人思路:首先令head符合条件,之后判断这个head是否为空,空的话返回空节点;非空的话继续进行。令pre=head;cur=head->next,只要cur非空,就判断cur的值的情况,如果需要删除,就改变pre->next和cur;如果不需要删除就继续检查下一个。看完讲解视频之后的想法:我......
  • 算法训练营第二天| 209.长度最小的子数组、59.螺旋矩阵II
    209.长度最小的子数组状态:没写出来->确认自己的想法是对的之后写出来了!!!初始思路:因为子数组是连续的,所以可以采用滑动窗口,我把这个窗口设置为左闭右闭,所以初始左右边界为0。之后先移动右指针,使得找到第一个和大于等于target的子数组,记录其长度,之后再移动左指针一位,再找第二个......
  • java基于协同过滤算法的springboot的煤矿员工健康管理系统(源码+文档+调试+vue+前后端
    收藏关注不迷路!!......
  • Dijkstra算法详解【附算法代码与运行结果】
    算法背景Dijkstra算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。这种算法由荷兰计算机科学家艾兹格·戴克斯特拉(EdsgerW.Dijkstra)在1956年提出。它适用于有向图和无向图,并且图中的边权重必须是非负数。基本原理如下图所示,找到一条从v1(节点1)到v6(......