注册会员
- 积分
- 59
- 威望
- 43
- 贡献
- 10
- 兑换币
- 12
- 注册时间
- 2016-7-6
- 在线时间
- 3 小时
- 毕业学校
- 幼儿园
|
求出来的阈值总是特别大,而且跳动的特别厉害。代码如下:
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;
}
}
}
|
|