Unity EasyAR 使用自定義UVC相機(安卓)

項目是安卓接入AR眼鏡,使用AR眼鏡的Camera進行識別

首先安卓手機接入AR眼鏡後,不能直接打開相機,需要使用AndroidStudio寫一個驅動註冊,這部分是網上的代碼,因爲不是做安卓驅動開發的所以具體也不清楚,就不講了。

然後自己使用AndroidStudio在網上代碼上封裝了打開關閉相機,以及回調byte[] 的圖片數據

使用Unity調用測試成功。

結合EasyAR

easyAr 3.0有一個CustomCamera 的示例,這個示例會調用相機然後獲取圖片byte[]數組,然後傳給EasyAR的識別部分。這個自定義相機要安卓支持,所以直接使用是不行的。

CustomCameraProxy類中,寫了具體和相機的交互。

在數據回調中會使用  HandleSink(buffer, format, imageSize, orientation, cameraType, timestamp);這個函數。

因此只需要在自己相機回調中,調用這個函數就可以了。

 

EasyAR的CustomCamera安卓jar包中也封裝了數據的結構,可以仿照他的代碼寫。


測試有效 ,但是需要修改AR Session代碼中的調用函數。圖片格式不能是壓縮格式,easyar只支持固定的幾種格式,因此在獲取相機byte[] 數據後,格式不對的需要轉換。

 

用這個邏輯,識別其實不一定要視頻,圖片應該也是可以的,EasyAR底層只是接收了圖片數據

包括陀螺儀的數據,其實也是可以自己修改的,但是需要重新編譯EasyAR的jar包,這樣就可以實現AR眼鏡的slam效果了。通過將眼鏡Camera的圖像替換,和眼鏡陀螺儀數據替換,因爲本身沒有這個接口(所以只能重新編譯jar包),希望後期還是能開放一下這些接口吧

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章