项目是安卓接入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的图像替换,和