最大类间方差法(OTSU)
最大类间方差法是1979年由日本学者大津提出的,是一种自适应阈值确定的方法,又叫大津法,简称OTSU。
它是根据图像的灰度特性,将图像分为前景和背景两个部分。当取最佳阈值时,两部分之间的差别应该是最大的,在OTSU算法中所采用的衡量差别的标准就是较为常见的最大类间方差。
记T为前景与背景的分割阈值,前景点数占图像比例为w0,平均灰度为u0;背景点数占图像的比例为w1,平均灰度为u1。首先计算平均灰度u,最大类间方差g的定义是:
g越大前景和背景的区别越大,因此可确定g最大时的阈值T。
注意最大类间方差属于全局算法,如果前景背景光照不均、噪声都可能会影响分割的结果,因此出现了局部的自适应阈值的方法。
OpenCV自适应阈值
阈值是根据像素邻域的均值或高斯加权和计算得到的,在窗口内大于阈值的元素保留,小于阈值的元素置零;接着平移window size距离,选择下一个窗口。??
void adaptiveThreshold( InputArray src, OutputArray dst,
double maxValue, int adaptiveMethod,
int thresholdType, int blockSize, double C );
- 参数3:预设满足条件的值,一般是255。
- 参数4:指定自适应阈值算法。可选择ADAPTIVE_THRESH_MEAN_C 或 ADAPTIVE_THRESH_GAUSSIAN_C两种。
- 参数5:指定阈值类型。可选择THRESH_BINARY或者THRESH_BINARY_INV两种。(即二进制阈值或反二进制阈值)。
- 参数6:表示邻域块大小,用来计算区域阈值,一般选择为3、5、7......
- 参数7:参数计算阈值,利用均值或加权和减去该参数最终得到阈值。