程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 觸摸屏校准算法研究

C# 觸摸屏校准算法研究

編輯:C#入門知識

 

所謂觸摸屏校准,其實就是硬件坐標轉屏幕坐標的過程。最近試了下windows 7 的校准,總的感覺還可以,不過windows 7校准有個不同之處,就是單點的觸摸屏跟多點的觸摸屏貌似需要校准點不一樣,多點的觸摸屏需要16點校准,也不知道這兩個方式的實現是否采用了相同的算法。

 

     根據產品的需要最近對觸摸屏的各種校准算法進行了研究:

 

1. 過原點直線比例關系,建立過原點直線方程即y=kx(k為比例系數);k=屏幕橫向(或豎向)分辨率/硬件橫向分辨率(或豎向);這種方式簡單,但缺點也明顯,這個需要硬件的安裝與屏幕的對應達到一一對應,實際上硬件在安裝過程中不可能無誤差

 

2. 通過一般一次線性方程

 

A1 *x+ B1*y + C1   = Xd;

 

A2 *x +B2*y + C2   = Yd;

 

x,y為采樣坐標,xd,yd為對應的屏幕坐標

 

為了要得到相對的精確的系數A1,B1,C1……需要轉成二次方程,然後采用高斯消元或者格拉姆對角線法則進行求解;

 

此算法看似簡單,但是在要得到相對精確的系數需要進行相對復雜的計算,但是這個算法也有優勢,可以使用任意多個校准點,校准點的數量要根據實際情況來確定,否則太多的校准點反而帶來冗余。Win CE裡的校准算法好像就是使用了該方法,此算法校准結果還不錯,適用於觸摸屏。

 

3.矩形變換,其實是使用了數字圖像處理類似的技術,通過仿射變換把硬件的觸摸矩形轉成屏幕分辨率矩形,此算法需要點數學知識,就不詳細描述。

 

 此算法適用於觸摸屏、電子白板校准。

 

4.基於拉格朗日插值算法進行校准,此方式是通過期刊論文裡看到的,實際在模擬測試的時候發現校准結果偏差巨大,也不知道我這邊是我這邊在寫此算法的時候存在bug還是本身就不適用於校准,此算法本身基於最小二乘,最小二乘本身多用於曲線關系。了解的朋友還多多指點。

 

 

 

總結,上述幾個算法除了1最簡單的沒有寫之外,其它的我都用C#進行了簡單的實現,並使用到真實觸摸設備和電子白板上。根據測試結果2和3方法校准結果還不錯,已應用於產品上;以上是本人的研究,寫的不對的還請指教,或者有更好方式的大家互相交流交流。

作者 e@Board

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved