美文网首页
otsu算法

otsu算法

作者: 井底蛙蛙呱呱呱 | 来源:发表于2019-05-13 00:25 被阅读0次

在计算机视觉和图像处理中,otsu (大津二值化法)用来自动对基于聚类的图像进行二值化,或者说,将一个灰度图退化为二值图像。该算法以大津展之命名。

对于一个灰度图,如果能按图像的灰度特性,将图像分为背景和目标两部分。也就是找到一个阈值,将这个灰度图分为前景背景两部分,则这两部分的类内方差越小,说明前背景分离的越好。


而大津证明了最小化类内方差和最大类间方差是相同的 这个没怎么看懂。。。 用类概率wi和均值μi来表示。

上面的摘自维基百科,不够通俗。下面使用更加通俗易懂的解释。

现在有一张图像,大小为MxN,前景像素数量占总像素比例为w0,平均灰度值为μ0;背景像素数量占总像素比例为w1,平均灰度值为μ1。图像的总平均灰度值为μ,类间方差记为g。假设我们取阈值为t,则图像中像素灰度值小于阈值t的分为一类,其像素个数记为N0,像素值灰度值大于阈值t的分为一类,其像素个数记为N1,则有:
w0 = N0/(MxN) (1)
w1 = N1/(MxN) (2)
N0 + N1 = MxN (3)
w0 + w1 = 1 (4)
μ = w0μ0 + w1μ1 (5)
g = w0(μ0-μ)^2 + w1(μ1-μ)^2 (6)

将式(5)代入式(6),得到等价公式:g=w0*w1(μ0-μ1)^2 (7)
采用遍历的方法得到使类间方差最大的阈值T,即为所求。

otsu算法步骤如下:
设图像包含L个灰度级(0,1,...,L-1),灰度值为i的像素点数量Ni,图像总的像素点数为N = N0+N1+...+N(L-1)。灰度值为i的点的概率为:
P(i) = N(i)/N
门限t将整幅图像分为暗区c1和亮区c2两类,则类间方差σ是t的函数:
σ = a1*a2(u1-u2)^2
式中,aj为类cj的面积与图像总面积之比,a1 = sum(P(j)), j∈(0, t),a2=1-a1; uj为类cj的均值,u1 = sum(i*P(i))/a1, i∈(0, t); u2 = sum(i*P(i))/a2, i∈(t+1, L-1) 。
该法选择最佳门限t^ 使类间方差最大,即:令Δu=u1-u2,σb = max{a1(t)*a2(t)Δu^2}

参考:
大津算法
图像二值化----otsu(最大类间方差法、大津算法)

相关文章

  • 阈值化

    大津算法(OTSU)

  • Otsu算法

    Otsu算法:最大类间方差法(大津算法),是一种确定阈值的算法。 之所以称为最大类间方差法是因为,用该阈值进行的图...

  • otsu算法

    在计算机视觉和图像处理中,otsu (大津二值化法)用来自动对基于聚类的图像进行二值化,或者说,将一个灰度图退化为...

  • 阈值分割的OTSU算法

    OTSU算法又叫最大类间方差阈值分割算法,也叫大津算法(大津展之 Ōtsu Nobuyuki),主要用于一些简单的...

  • 大津算法(OTSU)

    大津算法(OTSU)在图像处理领域,我们会遇到如下需求:把图像中的目标物体和背景分开。比如背景用白色表示,目标物体...

  • 图像分割算法

    OTSU算法(大津法或最大类间方差法) otsu使用的是聚类的思想,把图像的灰度数按灰度级分成2个部分,使得两个部...

  • 【OPENCV】Otsu 阈值分割算法

    原理 Otsu 的原理是最小化类间方差,从像素分布直方图的角度来看就是在像素分布直方图的峰值之间找一个点,使得两个...

  • Density Based Fuzzy Thresholding

    前言 之前处理图像二值化时使用的是经典的Otsu算法,这次要求使用Fuzzy Density Model去做一个图...

  • c语言实现Otsu算法

    1.源码实现 2.编译及运行 3.结果展示

  • Otsu处理

    《OpenCV轻松入门:面向Python》读书笔记作者:李立宗出版社:电子工业出版社出版时间:2019-05 第6...

网友评论

      本文标题:otsu算法

      本文链接:https://www.haomeiwen.com/subject/chmhaqtx.html