zoukankan      html  css  js  c++  java
  • 触摸屏校正原理

    (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), 对应触摸屏上的三个点是(XT1YT1),(XT2 YT2)。(XT3 YT3), 则联立两个方程组为:

     触摸屏校正原理

       这样,触摸屏的校正实际上就是解上面的方程组,得到6个系数:A、B、C、D、E、F。而上面方程组按照克莱姆法则解即可。

       在得到6个系数后,以后通过触摸屏得到的所有坐标,带入公式(1)中就可以得到LCD上以像素表示的坐标。

      

       触摸屏的校验原理说完了,但是原理与实现之间还是有一些差距的,例如根据原理我们只需3个坐标点就可以了,可是在很多系统为了精度的需要而采集5个坐标点,那么如何处理这5个点呢?(直接用上面的方程显然不行)具体的实现可以参考另一篇博文:http://blog.sina.com.cn/s/blog_5d9051c00100eec9.html

    附:克拉姆法则

    触摸屏校正原理

  • 相关阅读:
    爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
    网络爬虫基础练习
    Mysql 使用 select into outfile
    Mysql 使用CMD 登陆
    使用Clean() 去掉由函数自动生成的字符串中的双引号
    Get Resultset from Oracle Stored procedure
    获取引用某个主键的所有外键的表
    Entity Framework 丢失数据链接的绑定,在已绑好的EDMX中提示“Choose Your Data Connection”
    添加MySql Metat Database 信息
    at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
  • 原文地址:https://www.cnblogs.com/Akagi201/p/2417949.html
Copyright © 2011-2022 走看看