| 
 
| 函数名: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之间关系不明。
 | 
 |