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

全部博文(674)

文章存档

2013年(34)

2012年(146)

2011年(197)

2010年(297)

分类: LINUX

2010-08-21 06:29:39

转载自(http://blog.sina.com.cn/wyw1976) 作者邮箱(wyw1976@gmail.com)
(1)触摸屏为什么需要校正?
    触摸屏与LCD显示屏是两个不同的物理器件。LCD处理的像素,例如我们通常所说的分辨率是600x800,实际就是指每行的宽度是600个像素,高度是800个像素,而触摸屏处理的数据是点的物理坐标,该坐标是通过触摸屏控制器采集到的。两者之间需要一定的转换。
    其次, 在安装触摸屏时,不可避免的存在着一定的误差,如旋转,平移的,这同样需要校正解决。
    再次,电阻式触摸屏的材料本身有差异而且随着时间的推移,其参数也会有所变化,因此需要经常性的校正(电容式触摸屏只需要一次校正即可,这是由两者不同的材料原理造成的,具体可参阅有关
电阻式和电容式触摸屏对比的文章)
(2)如何校正?
    触摸屏的校正过程一般为: 依次在屏幕的几个不同位置显示某种标记(如"+"), 用触摸笔点击这些标记, 完成校正。
    如果PT(x, y)表示触摸屏上的一个点, PL(x, y)表示LCD上的一个点,校正的结果就是得到一个转换矩阵M, 使PL(x, y) = M·PT(x, y)。
(3) 校正原理
    我们知道二维几何变换包含三种平移、旋转和缩放。这三者的矩阵表示为:
平移MT:


缩放MS:


旋转MR:


所以  PL =MR·MT·MS· PT, 将这个公式展开,其结果为:

    在上面的公式中,LCD上的坐标(XL 、YL)和触摸屏上的坐标(XT 、YT)是已知的,而其他的则是我们需要求的:θ, SY, SX, TY, SX共有5个变量,至少需要五个方程,因为每组点坐标(PL, PT)可以得到两个方程,因此我们需要采集三组点坐标。但是上面的方程涉及三角函数,运算复杂,我们可以进一步简化为:

变量虽然多了一个,但是解题过程简单多了,更适合计算机计算,而且采集点的数量仍然为3组。
    假设LCD三个点的坐标为(XL1, YL1),(XL2, YL2),(XL2, YL2), 对应触摸屏上的三个点是(XT1, YT1),(XT2, YT2)。(XT3, YT3), 则联立两个方程组为:

   这样,触摸屏的校正实际上就是解上面的方程组,得到6个系数:A、B、C、D、E、F。而上面方程组按照克莱姆法则解即可。
   在得到6个系数后,以后通过触摸屏得到的所有坐标,带入公式(1)中就可以得到LCD上以像素表示的坐标。
附:克拉姆法则


阅读(1769) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~