函数名:Read_2046,
描述:读取滤波后的X,Y
如下蓝色部分程序,请问下面是基于什么原则取平均值?
if(count==9)
{ //分三组取平均值
temp[0]=(buffer[0][0]+buffer[0][1]+buffer[0][2])/3;
temp[1]=(buffer[0][3]+buffer[0][4]+buffer[0][5])/3;
temp[2]=(buffer[0][6]+buffer[0][7]+buffer[0][8])/3;
//计算三组数据的差值.
m0=temp[0]-temp[1];
m1=temp[1]-temp[2];
m2=temp[2]-temp[0];
//差值取绝对值.
m0=m0>0?m0-m0);
m1=m1>0?m1-m1);
m2=m2>0?m2-m2);
if( m0>THRESHOLD && m1>THRESHOLD && m2>THRESHOLD )
return 0;
/*计算它们的平均值,同时赋给screen*/
if(m0<m1)
{
if(m2<m0)
screen.x=(temp[0]+temp[2])/2;//m2<m0<m1,即取误差最小的两个值的平均值
else
screen.x=(temp[0]+temp[1])/2;//m0<m2且m0<m1,这个基于什么原则取平均值,没看出来,只能知道m0是最小值。M2和M1之间关系不明。
}
else if(m2<m1)
screen.x=(temp[0]+temp[2])/2;//m2<m1<m0,即取误差最小和和最大的两个值的平均值
else
screen.x=(temp[1]+temp[2])/2;//m1<m2,m1<m0,这个基于什么原则取平均值,没看出来,只能知道m1是最小值。M2和M0之间关系不明。 |