Otsu阈值法原理及实现


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


Otsu算法简介

Otsu阈值法发表于1979年,论文为A threshold selection method from gray level histograms,作者是日本东京大学的Nobuyuki Otsu(大津 展之)。

自动全局阈值算法通常包括如下几步

  • 1.对输入图像进行预处理,如高斯平滑
  • 2.获取图像的灰度直方图
  • 3.计算阈值T
  • 4.对原图像二值化,小于阈值T的位置像素值设为0,大于阈值T的像素值设为255

一般,各种阈值处理算法的区别主要在第3步,即确定阈值的逻辑不同。

Otsu 算法的逻辑

其核心思想是,将图像的像素根据某个像素值分成两簇,并使得这两簇之间的像素值的类间方差最大化。

所以Otsu算法适合用于像素直方图表现为双峰图像的阈值处理。

双峰图像(bimodal images)是指具有如下形式像素直方图的图像:

如下就是一个双峰图像的示例:


假设一副灰度图,像素值灰度级为 L L L,如我们常见的灰度图像,灰度级是256。

像素值为第 i i i个灰度级的像素点有 n i n_i ni个,则这幅图像总的像素点个数为 N = n 1 + n 2 + . . . n L N=n_1+n_2+...n_L N=n1+n2+...nL

基于上述假设,某个像素点为灰度级 i i i的概率可表示为:

p i = n i N p_i=\frac{n_i}{N} pi=Nni

p i p_i pi满足以下条件: p i > 0 , ∑ i = 1 L p i = 1 p_i\gt0,\sum_{i=1}^Lp_i=1 pi>0,i=1Lpi=1

取灰度级 t t t为阈值将这幅图像的像素点分成 C 1 C_1 C1 C 2 C_2 C2两簇,

  • C 1 C_1 C1包含像素级为 [ 1 , 2 , . . . , t ] [1,2,...,t] [1,2,...,t]的像素
  • C 2 C_2 C2包含像素级为 [ t + 1 , . . . , L ] [t+1,...,L] [t+1,...,L]的像素

对于图像中某个像素属于 C 1 / C 2 C_1/C_2 C1/C2类的概率可表示为:

ω 1 ( t ) = ∑ i = 1 t p i \omega_1(t) = \sum^t_{i=1}p_i ω1(t)=i=1tpi
ω 2 ( t ) = ∑ i = t + 1 L p i \omega_2(t) = \sum^L_{i=t+1}p_i ω2(t)=i=t+1Lpi

ω 1 ( t ) , ω 2 ( t ) \omega_1(t),\omega_2(t) ω1(t)ω2(t)满足关系 ω 1 ( t ) = 1 − ω 2 ( t ) \omega_1(t) = 1 - \omega_2(t) ω1(t)=1ω

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值