自适应阈值分割(最大类间方差法、大津法、OTSU)

最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标两部分,或者说,是寻找一个阈值为K,将图像的颜色分为1,2.....K和K+1.....256两部分。

如何确定这个阈值K?算法分类的原理是让背景和目标之间的类间方差最大,因为背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,错分的可能性越小。下面进行公式推导:

首先是符号说明:对于图像I(x,y),前景(即目标)和背景的分割阈值记作T,属于前景的像素点数占整幅图像的比例记为ω0,其平均灰度μ0;背景像素点数占整幅图像的比例为ω1,其平均灰度为μ1。图像的总平均灰度记为μ,类间方差记为g。假设图像的背景较暗,并且图像的大小为M×N,图像中像素的灰度值小于阈值T的像素个数记作N0,像素灰度大于阈值T的像素个数记作N1

   

采用遍历的方法得到寻找到类间方差最大值,对应的阈值,即为所求。

代码区:

int myOtsu(const IplImage *frame) //大津法求阈值
{
#define GrayScale 256    //frame灰度级
    int width = frame->width;
    int height = frame->height;
    int pixelCount[GrayScale]={0};
    float pixelPro[GrayScale]={0};
    int i, j, pixelSum = width * height, threshold = 0;
    uchar* data = (uchar*)frame->imageData;

    //统计每个灰度级中像素的个数
    for(i = 0; i < height; i++)
    {
        for(j = 0;j < width;j++)
        {
            pixelCount[(int)data[i * width + j]]++;
        }
    }

    //计算每个灰度级的像素数目占整幅图像的比例
    for(i = 0; i < GrayScale; i++)
    {
        pixelPro[i] = (float)pixelCount[i] / pixelSum;
    }

    //遍历灰度级[0,255],寻找合适的threshold
    float w0, w1, u0tmp, u1tmp, u0, u1, deltaTmp, deltaMax = 0;
    for(i = 0; i < GrayScale; i++)
    {
        w0 = w1 = u0tmp = u1tmp = u0 = u1 = deltaTmp = 0;
        for(j = 0; j < GrayScale; j++)
        {
            if(j <= i)   //背景部分
            {
                w0 += pixelPro[j];
                u0tmp += j * pixelPro[j];
            }
            else   //前景部分
            {
                w1 += pixelPro[j];
                u1tmp += j * pixelPro[j];
            }
        }
        u0 = u0tmp / w0;
        u1 = u1tmp / w1;
        deltaTmp = (float)(w0 *w1* pow((u0 - u1), 2)) ;
        if(deltaTmp > deltaMax)
        {
            deltaMax = deltaTmp;
            threshold = i;
        }
    }
    return threshold;
}

代码亲测有效,成功实现阈值分割

代码部分参考:https://blog.csdn.net/daxiamit/article/details/6619075 
本文针对灰度图像,彩色图像可以参考:https://blog.csdn.net/guoyk1990/article/details/7606032

猜你喜欢

转载自blog.csdn.net/momo026/article/details/84026075
今日推荐