基于最大熵的图像分割算法

大多数分割算法都基于图像灰度值的两个基本性质之一:不连续性和相似性。第一类方法根据灰度的突变将图像分割为多个区域;第二类方法根据一组预定义的准则将图像分割为多个区域。阈值处理、区域生长、区域分离和聚合都是这类方法的例子。结合不同类别的分割方法。如边缘检测与阈值处理,可以提高分割性能。

  首先是阈值处理方法。由于图像阈值处理直观、实现简单并且计算速度快,因此在图像分割应用中处于核心地位。

  根据灰度值和/灰度值的性质来将图像直接划分为多个区域的技术。

  假设某图片的灰度直方图对应于图像f(x,y),该图像由暗色背景上的亮目标组成,其中目标像素和背景像素的灰度值组合成了两种主导模式。从背景中提取目标的一种明显方法是,选择一个分隔这些模式的阈值T。然后,图像中f(x,y)>T的任何点(x,y)称为一个目标点,否则该点称为背景点。分割后的图像g(x,y)为

 

  当T是一个适合于整个图像的常数时,上式给出的处理成为全局阈值处理。当T值在一幅图像熵变化时,上式中给出的处理成为可变阈值处理。有时,我们使用局部阈值处理或区域阈值处理表示可变阈值处理。此时图像中任意一点(x,y)处的T值取决于(x,y)的邻域的性质。

  对于更难处理的阈值处理问题,它包含一个具有3个主导模式的直方图,这三个主导模式分别对应于暗色目标和两类亮目标。这里,若f(x,y)<=T1,则多阈值处理把点(x,y)分类为背景,若T1<=f(x,y)<=T2,则把点(x,y)分类为目标;若f(x,y)>=T2,则把点分类为另一个目标。也就是说:

 

其中a,b,c时任意三个不同的灰度值。

  2.1基本的全局阈值处理方法

  当目标和背景像素的灰度分布非常不同时,可对整个图像使用单个(全局)阈值。在大多数应用中,图像之间通常存在足够的变化,即使全局阈值时一种合适的方法,也需要有能对每一个图像估计阈值的方法。

最大熵图像分割算法

   在灰色图像中,设灰度值为i的概率为Pi,假设阈值为T,则灰度值0-T之间的为背景B,灰度值为T+1-255的为前景F。

B类:

 

 

F类:

 

根据此计算相应的信息熵:

 

 

接着遍历穷举阈值T(0-255),得到使得HB+HT最大的阈值T,该阈值就是通过最大熵方法得到的灰度图像分割点。

用通俗的话来讲,就是说我把从1-256每一个灰度值都作为阈值T尝试一次,将使用0-T和T-256两部分计算出的信息熵相加,使这个值最大的时候的灰度值就为最佳阈值T,因为使用它作为分割点时,两部分背景和前景能够保持最大的信息量。

之后参考着网上代码,使用MATLAB编码测试了最大熵分割算法的效果:

 

                                                                                                                      图2.1 最大熵图像分割算法

  实现这一部分时遇到了一个问题,就是通过给出的熵函数计算时,会出现某一灰度值出现的概率为0,导致公式中需要计算LOG(0),matlab计算这个式子时会自动返回-INF表示这是一个非常小的数,但这时这个INF值会使这一个阈值的熵都为NaN,导致整个计算阈值的程序出现错误,找不到最佳阈值。因此需要对这个Log(0)的情况进行处理。从网上找到处理这个错误的常用方法是在log()公式中加入一个比较小的值(例如0.00001),使就算出现某一灰度值概率为0时,log也能计算出一个常数而不是一个趋近于无限的值。

  • 10
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值