Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12470792
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: C/C++

2011-04-24 16:42:34

转载时请表明原文出处(http://blog.sina.com.cn/wyw1976)及作者邮箱()

 

   我们在《触摸屏校正原理》说过,只需要三组点坐标,我们就可以完成触摸屏的校正,其基本公式为:

 tslib中的校正算法实现

     实际上,在校正时,采集的触摸屏的点坐标有一定的误差,也就是说采集几个三组点坐标,分别计算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, XLXTXLYT(XT)2(YT)2YT 求和,带入公式(3)中,就可以求出A、B、C,同理可求D、E、F。

     解的时候用的是逆矩阵的方法,即:

        

      P0 = M · P1 ======> (M)-1 P0 = P1

 

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

阅读(2646) | 评论(0) | 转发(0) |
0

上一篇:三道C语言知识题目

下一篇:tslib 移植

给主人留下些什么吧!~~