矩陣論還真有用 觸控螢幕校準

2021-07-15 11:57:31 字數 692 閱讀 3361

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 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 的放大係數

使用ts calibrate校準觸控螢幕

使用ts lib包自帶的ts calibrate校準觸控螢幕非常簡單實用,但在基於xsever的gui應用環境下,有兩個問題存在 1.校準後必須重新啟動x,應用端才能生效。這樣處理使用者肯定不能接受,因為啟動一次機器畢竟耗時。2.在使用ts calibrate校準觸控螢幕時,要觸控5個點,這時如果g...

使用ts calibrate校準觸控螢幕

使用ts lib包自帶的ts calibrate校準觸控螢幕非常簡單實用,但在基於xsever的gui應用環境下,有兩個問題存在 1.校準後必須重新啟動x,應用端才能生效。這樣處理使用者肯定不能接受,因為啟動一次機器畢竟耗時。2.在使用ts calibrate校準觸控螢幕時,要觸控5個點,這時如果g...

使用ts calibrate校準觸控螢幕

使用ts lib包自帶的ts calibrate校準觸控螢幕非常簡單實用,但在基於xsever的gui應用環境下,有兩個問題存在 1.校準後必須重新啟動x,應用端才能生效。這樣處理使用者肯定不能接受,因為啟動一次機器畢竟耗時。2.在使用ts calibrate校準觸控螢幕時,要觸控5個點,這時如果g...