Otsu(大津法)
OTSU算法,又被称为最大类间方差法(大津算法),是一种确定阈值的算法,是由日本学者大津展之于1979 年提出的。该方法常用于图像进行二值分割时的自适应阈值计算
它是按图像的灰度分布特性,将图像分成背景background和目标object两部分。分割的依据是两类之间的间类方差最大,即类别内的差异最小化
原理
我们对一副标准化图像,例如把图像的像素值映射到0-255,我们想通过一个阈值 把图像像素值分为两类;
分别是类A小于γ和类B大于等于γ。那我们这个阈值取值于0-255,这里我们去阈值为整数,问题是我们怎样选取可以是的类A与类B之间的间类方差最大化。
如何表示这个间类方差
前提条件:图像的像素值范围在0-255之间,且为整数
统计每个灰度值的像素个数,设ni为图像中灰度为i的像素的总数量,则能得到n0,n1,⋯,n255
图像中像素为i的概率为Pi=n0+n1+⋯+n255ni且满足公式∑0255Pi=1
假设我们的阈值为t已知,则我们可以确定类A与类B之间的方差
对于类A来说,有像素被分配到类A的概率为:PAt=∑0tPi
A类像素的平均像素灰度值为mAt=PAt∑0tipi
对于类B来说,有像素被分配到类A的概率为:PBt=∑t+1255Pi
B类像素的平均像素灰度值为mBt=PBt∑t+1255ipi
且真个图像的像素的平均灰度值为mG=∑0255ipi
有上式可以得出
PAt+PBt=11式PAt∗mAt+PBt∗mBt=mG2式
且类A与类B的总体方差为
σ2=PAt∗mAt−mG2+PBt∗mBt−mG23式
将1式和2式带入3式中得出
σ2=PAt∗PBt∗mAt−mBt2
由此,我们将间类方差表示为分割阈值t的函数,下面我们只需要求解t使得方差 最大即可,为此我们可以让t遍历[0-255],找到使最大的t