矩阵论还真有用:触摸屏校准
2016-07-23 20:55
281 查看
tslib 主要做了两件事,坐标系映射和按键的滤波。
屏幕的校准主要原理是两个坐标系的映射,通过平移,旋转,缩放。
即原坐标系的坐标点左乘,平移矩阵,旋转矩阵,缩放矩阵,可以得到校准后的矩阵。
由此可以推导出方程组:
X_ = aX + bY + c
Y_ = dX +eY + f
只要求出abc和defi就可以得出两个坐标系的映射关系。
tslib用的是5点校准,推倒公式如下:
X_ = a*X + b*Y + c
X_*X = a*X*X + b*Y*X + c*X
X_*Y = a*X*Y + b*Y *Y+ c*Y
Y_ = d*X +e*Y + f
Y_*X = d*X*X +e*Y*X + f*X
Y_*Y = d*X*Y +e*Y*Y + f*Y
ts_calibration.c
typedef struct {
int x[5], xfb[5];
int y[5], yfb[5];
int a[7];
} calibration;
x和y用来存触摸屏采样的五个点坐标(getxy函数获取,读取触摸屏设备而来)
xfb和yfb用来存lcd的五个坐标点(即lcd上的五个十字架,坐标已知)
a[0..2]对应方程组的a b c(根据克莱姆法则计算而来)
a[3...5]对应方程组的d e f(根据克莱姆法则计算而来)
a[6] a b c d e f 的放大系数
屏幕的校准主要原理是两个坐标系的映射,通过平移,旋转,缩放。
即原坐标系的坐标点左乘,平移矩阵,旋转矩阵,缩放矩阵,可以得到校准后的矩阵。
由此可以推导出方程组:
X_ = aX + bY + c
Y_ = dX +eY + f
只要求出abc和defi就可以得出两个坐标系的映射关系。
tslib用的是5点校准,推倒公式如下:
X_ = a*X + b*Y + c
X_*X = a*X*X + b*Y*X + c*X
X_*Y = a*X*Y + b*Y *Y+ c*Y
Y_ = d*X +e*Y + f
Y_*X = d*X*X +e*Y*X + f*X
Y_*Y = d*X*Y +e*Y*Y + f*Y
ts_calibration.c
typedef struct {
int x[5], xfb[5];
int y[5], yfb[5];
int a[7];
} calibration;
x和y用来存触摸屏采样的五个点坐标(getxy函数获取,读取触摸屏设备而来)
xfb和yfb用来存lcd的五个坐标点(即lcd上的五个十字架,坐标已知)
a[0..2]对应方程组的a b c(根据克莱姆法则计算而来)
a[3...5]对应方程组的d e f(根据克莱姆法则计算而来)
a[6] a b c d e f 的放大系数
相关文章推荐
- c# 之 timer 实战
- 矩阵论还真有用:触摸屏校准
- 矩阵论还真有用:触摸屏校准
- 矩阵论还真有用:触摸屏校准
- 矩阵论还真有用:触摸屏校准
- 矩阵论还真有用:触摸屏校准
- 坑
- 矩阵论还真有用:触摸屏校准
- 矩阵论还真有用:触摸屏校准
- /usr/bin/ld: /usr/bin/ld: cannot find -lc
- Codeforces681C Heap Operations
- POJ 1236 Network of Schools 强联通分量求出度为0的点和入度为0的点的数目
- 单调栈(poj -- 2559)
- 让Linux中的gedit变为你的编程利器!!!
- java设计模式_工厂模式
- java学习之路 之 基本语法-程序流程控制-循环结构-while循环练习题
- Linux中select函数的使用举例
- 11
- 漫谈Java程序设计中的接口应用
- SSM框架基础入门学习1——servlet入门实例(包含mysql增查,实例免费下载)