遊戲光槍座標定位原理及演算法

2021-07-13 11:31:10 字數 1552 閱讀 2749

我是做遊樂行業的,要研發一款射擊遊戲機。

現在要研發一款光槍,網上能找到的光槍大部分資料都是第一代的遊戲機上面用的,用的還是有家裡的老式電視機,加上霸王學習機,玩的射擊遊戲。

我們研究是新的光槍好嘛。

新型光槍是主要是有兩種,一種是wii光槍,原理是紅外感應條,加6自由度加速度的感測器。這種是相對位置,每次都要校準,體驗感比較差。

另一種是攝像頭加紅外光點來定位。

就是攝像頭上面加乙個濾光片,這個濾光片只能穿過紅外光點發出的紅外線。在攝像頭上面看到的就是乙個白點。再通過opencv影象識別確定白點在中的座標。

再通過五點座標校正算出在遊戲機螢幕上面的座標。

校正

根據的座標和在攝像頭中對應的座標,來確定螢幕和攝像頭中點的對應關係。

如果pt(x, y)表示攝像頭上的乙個點, pl(x, y)表示螢幕上的乙個點,校正的結果就是得到乙個轉換矩陣m, 使pl(x, y) = m·pt(x, y)

(3) 校正原理

我們知道二維幾何變換包含三種平移、旋轉和縮放。這三者的矩陣表示為:

平移mt:

縮放ms:

旋轉mr:

所以  pl =mr·mt·ms· pt, 將這個公式展開,其結果為:

在上面的公式中,螢幕上的座標(xl 、yl)和攝像頭上的座標(xt 、yt)是已知的,而其他的則是我們需要求的:θ, sy, sx, ty, sx共有5個變數,至少需要五個方程,因為每組點座標(pl, pt)可以得到兩個方程,因此我們需要採集三組點座標。但是上面的方程涉及三角函式,運算複雜,我們可以進一步簡化為:

變數雖然多了乙個,但是解題過程簡單多了,更適合計算機計算,而且採集點的數量仍然為3組。

假設螢幕三個點的座標為(xl1, yl1),(xl2, yl2),(xl2, yl2), 對應攝像頭上的三個點是(xt1, yt1),(xt2, yt2)。(xt3, yt3), 則聯立兩個方程組為:

這樣,觸控螢幕的校正實際上就是解上面的方程組,得到6個係數:a、b、c、d、e、f。而上面方程組按照克萊姆法則解即可。

在得到6個係數後,以後通過攝像頭得到的所有座標,帶入公式(1)中就可以得到螢幕上以畫素表示的座標。

Appium元素定位難點 tap座標定位不準確

1.tap是模擬手指點選頁面上元素 語法有兩個引數,第乙個是positions,是list型別最多五個點,duration是持續時間,單位毫秒 tap self,positions,duration none taps on an particular place with up to five f...

css sprite 座標定位為何為負以及定位方法

用這個的時候,關於最後的 background position 屬性2個引數理解出了偏差,網上很多地方都沒解釋清楚。特意查了下了解清楚 源於指令碼之家 說說原理先 css sprites其實就是把網頁中一些背景整合到一張檔案中,再利用css的 background image background...

halcon 手眼標定的座標轉換原理講解

一直以來,對於手眼標定所涉及到的座標系及座標系之間的轉換關係都沒能有乙個很好的理解,最近找了halcon手眼標定的例項在研究,發現對於相機的兩種安裝方式 眼在手和眼在手外 其座標轉換關係是類似的,這樣說好像太抽象了,下面具體說說。我覺得標定最基本的是要將座標系理清楚,這裡涉及到的座標系有四個 機械人...