tslib中的校正算法实现

[color=red]转载自(http://blog.sina.com.cn/wyw1976) 作者邮箱(wyw1976@gmail.com)[/color]
[size=medium]我们在[url=http://loovle.iteye.com/blog/663430][color=blue]触摸屏校正原理[/color][/url]说过,只需要三组点坐标,我们就可以完成触摸屏的校正,其基本公式为:
[img]http://dl.iteye.com/upload/picture/pic/62243/add76b13-07e6-35fc-8c8a-55ee6cd571cd.jpg[/img]
实际上,在校正时,采集的触摸屏的点坐标有一定的误差,也就是说采集几个三组点坐标,分别计算A、B、C、D、E、F,其结果不尽相同。
在tslib的ts_calibrate中,采集了五组点坐标,具体代码参见ts_calibrate.c中的perform_calibration()。
一般来说,采集的点越多,校正的精确性就越高。 为了在计算过程中兼顾5个点的坐标, ts_calibrate将公式(1)变换如下:
[img]http://dl.iteye.com/upload/picture/pic/62245/db7eeb17-df3c-320c-b077-abfcd2a39f22.jpg[/img]
以第一组(A、B、C)为例, 进一步变换为:
[img]http://dl.iteye.com/upload/picture/pic/62247/ef08a85e-ed29-3a96-9ead-95a9fa9f855a.jpg[/img]
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个,只是采集点过多就会冗余,对校正精确性的提高作用很少,反而增加了计算时间。[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值