智能车制作

标题: 大津法二值化求助, [打印本页]

作者: 快快快冲冲冲    时间: 2016-7-8 16:03
标题: 大津法二值化求助,
求出来的阈值总是特别大,而且跳动的特别厉害。代码如下:
void dajin()
{
   gpio_init (PORTA , 16, GPO,LOW);
   int grayscale=256;         //灰度级数
   int jishu[256]={0};
   int pixelSum=80;

   int i,j ;
   int pj[256]={0};
    ;
   for(i=0;i<DATALINE;i+=8)
   {
     for(j=0;j<DATACOUNT;j+=10)
     {
          jishu[ADdata[i][j]]++;
     }
   }
   for(i = 0; i < grayscale; i++)
    {
        pj[i] = (float)jishu[i] / pixelSum;
    }


   for(j=0;j<=grayscale;j++)
   {
     w0= w1= u0tmp= u1tmp= u0= u1= u= g=deltaMax = 0;   //都定义的全局变量
     for(z=0;z<=grayscale;z++)
     {
       if(j<=z)
       {
         w0+=jishu[j];
         u0tmp+=jishu[j]*j;
       }
       else
       {
         w1+=jishu[j];
         u1tmp+=jishu[j]*j;
       }
     }

       u0=u0tmp/w0;
       u1=u1tmp/w1;

       u=(u0tmp+u1tmp)/(w0+w1);
       g = w0 *(u0-u)*(u0-u)+ w1 *(u1-u)*(u1-u) ;
       if(g > deltaMax)
       {
          deltaMax = g;
          threshold = z;
       }

   }

}


作者: 开心果小文    时间: 2016-7-9 10:31
最后求出的阈值需要通过计算得到你需要的大概阈值,我们是将得到的阈值乘以一个系数。系数根据自己实际情况而定。
作者: yaowang107    时间: 2016-7-9 15:25
可根据边缘边缘跳变来寻找




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2