我正在與ARKit
一起進行一個項目,我正在嘗試對ARFrame.capturedImage
進行透視校正,以便將一張紙放置在檢測到的平面上,以便將其送入CoreML
模型,該模型期望圖像要從頭頂上直接拍攝。ARKit透視校正
ARKit
給我相對於飛機的設備方向(ARCamera.transform
,ARCamera.eulerAngles
和ARCamera.projectionMatrix
都看起來很有希望)。
所以我有相機的方向(我知道飛機是水平的,因爲這是所有ARKit
現在檢測)..但我不能完全弄清楚如何創建一個GLKMatrix4
將執行正確的透視校正。
最初我以爲它會像轉換ARCamera.projectionMatrix
的倒數一樣簡單,但看起來根本不起作用;我不完全確定矩陣描述的是什麼......它基於設備方向似乎沒有太大的改變。
我已經嘗試使用GLKMatrix4Rotate
和roll/pitch/yaw創建我自己的矩陣,但沒有工作..我甚至無法使用單個旋轉軸工作。
我發現GLKMatrix4MakePerspective
,GLKMatrix4MakeOrtho
和GLKMatrix4MakeFrustum
這似乎做透視變換,但我無法弄清楚如何利用我的資料並將其翻譯的那些功能的輸入,使正確觀念的轉變。
編輯: 作爲一個例子,以更好地解釋什麼,我試圖做的,我用Photoshop中的Perspective Warp
工具轉換的示例圖像;我想知道的是如何提出一個矩陣,根據我對場景的信息進行類似的變換。