Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3726404
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: LINUX

2012-05-07 13:30:16

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