Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3003745
  • 博文数量: 674
  • 博客积分: 17881
  • 博客等级: 上将
  • 技术积分: 4849
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 10:15
文章分类

全部博文(674)

文章存档

2013年(34)

2012年(146)

2011年(197)

2010年(297)

分类: LINUX

2010-08-21 06:31:46

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

    实际上,在校正时,采集的触摸屏的点坐标有一定的误差,也就是说采集几个三组点坐标,分别计算A、B、C、D、E、F,其结果不尽相同。
    在tslib的ts_calibrate中,采集了五组点坐标,具体代码参见ts_calibrate.c中的perform_calibration()。
    一般来说,采集的点越多,校正的精确性就越高。 为了在计算过程中兼顾5个点的坐标, ts_calibrate将公式(1)变换如下:

   以第一组(A、B、C)为例, 进一步变换为:

   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个,只是采集点过多就会冗余,对校正精确性的提高作用很少,反而增加了计算时间。
阅读(1954) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~