1、最大类间方差法的由来
最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。
2、最大类间方差法的原理
它是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。对于图像I(x,y),前景(即目标)和背景的分割阈值记作Th,属于前景的像素点数占整幅图像的比例记为w1,其平均灰度G1;背景像素点数占整幅图像的比例为w2,其平均灰度为G2。图像的总平均灰度记为G_Ave,类间方差记为 g。
假设图像的背景较暗,并且图像的大小为M*N,图像中像素的灰度值小于阈值的像素个数记作N1,像素灰度大于阈值的像素个数记作N2,则有:
3、代码实现
#include <opencv2\opencv.hpp>
#include <iostream>
#include <time.h>
using namespace std;
using namespace cv;
int myOtsu(Mat & src)
{
int th;
const int GrayScale = 256; //单通道图像总灰度256