tslib中的校正算法实现

转载自(http://blog.sina.com.cn/wyw1976) 作者邮箱([email protected])
我们在触摸屏校正原理说过,只需要三组点坐标,我们就可以完成触摸屏的校正,其基本公式为:

    实际上,在校正时,采集的触摸屏的点坐标有一定的误差,也就是说采集几个三组点坐标,分别计算A、B、C、D、E、F,其结果不尽相同。
    在tslib的ts_calibrate中,采集了五组点坐标,具体代码参见ts_calibrate.c中的perform_calibration()。
    一般来说,采集的点越多,校正的精确性就越高。 为了在计算过程中兼顾5个点的坐标, ts_calibrate将公式(1)变换如下:
tslib中的校正算法实现
   以第一组(A、B、C)为例, 进一步变换为:
tslib中的校正算法实现
   n表示坐标的数量,ts_calibrate中就是5, 分别对XT, YT, XL, XLXT,XLYT,(XT)2 ,(YT)2 ,YT 求和,带入公式(3)中,就可以求出A、B、C,同理可求D、E、F。
   解的时候用的是逆矩阵的方法,即:
       
   P0 = M · P1 ======> (M)-1 P0 = P1

   我们可以看出,运用上述方法可以处理任意多的采集点,而不局限于5个,只是采集点过多就会冗余,对校正精确性的提高作用很少,反而增加了计算时间。

你可能感兴趣的:(C++,c,算法,C#,Gmail)