1.Ostu算法原理
使用大津算法来二值化图像!大津算法,也被称作最大类间方差法,是一种可以自动确定二值化中阈值的算法,从类内方差和类间方差的比值计算得来:
- 小于阈值 t 的类记作 0,大于阈值 t 的类记作 1;
- w0 和 w1 是被阈值 t 分开的两个类中的像素数占总像素数的比率(满足 w0+w1=1);
- S0^2, S1^2 是这两个类中像素值的方差;
- M0, M1 是这两个类的像素值的平均值;
也就是说:
类内方差:Sw^2 = w0 * S0^2 + w1 * S1^2
类间方差:Sb^2 = w0 * (M0 - Mt)^2 + w1 * (M1 - Mt)^2 = w0 * w1 * (M0 - M1) ^2
图像所有像素的方差:St^2 = Sw^2 + Sb^2 = (const)
根据以上的式子,我们用以下的式子计算分离度:
分离度 X = Sb^2 / Sw^2 = Sb^2 / (St^2 - Sb^2)
也就是说:我们要是分离度X最大,在图像灰度之中遍历0-255,计算所有的分离度,则可以已找到最大的分离度,从而找到最佳的二值化阈值。
其次计算分离度的最大值时,可以简化式子。X=