2017-08-03 97 views
1

我正在與ARKit一起進行一個項目,我正在嘗試對ARFrame.capturedImage進行透視校正,以便將一張紙放置在檢測到的平面上,以便將其送入CoreML模型,該模型期望圖像要從頭頂上直接拍攝。ARKit透視校正

ARKit給我相對於飛機的設備方向(ARCamera.transform,ARCamera.eulerAnglesARCamera.projectionMatrix都看起來很有希望)。

所以我有相機的方向(我知道飛機是水平的,因爲這是所有ARKit現在檢測)..但我不能完全弄清楚如何創建一個GLKMatrix4將執行正確的透視校正。

最初我以爲它會像轉換ARCamera.projectionMatrix的倒數一樣簡單,但看起來根本不起作用;我不完全確定矩陣描述的是什麼......它基於設備方向似乎沒有太大的改變。

我已經嘗試使用GLKMatrix4Rotate和roll/pitch/yaw創建我自己的矩陣,但沒有工作..我甚至無法使用單個旋轉軸工作。

我發現GLKMatrix4MakePerspectiveGLKMatrix4MakeOrthoGLKMatrix4MakeFrustum這似乎做透視變換,但我無法弄清楚如何利用我的資料並將其翻譯的那些功能的輸入,使正確觀念的轉變。

編輯: 作爲一個例子,以更好地解釋什麼,我試圖做的,我用Photoshop中的Perspective Warp工具轉換的示例圖像;我想知道的是如何提出一個矩陣,根據我對場景的信息進行類似的變換。

enter image description here

回答