在使用带有Unity的ARKit时访问iPhone相框,转换camera.videoparams.cvPixelBuffer

时间:2017-11-30 16:37:15

标签: c# ios opencv unity3d arkit

我目前正在尝试创建一个使用OpenCV和ARKit的Unity项目。我有OpenCV,以便执行一些轻量级的功能识别,我不想直接通过ARKit。我有ARKit应用程序和OpenCV应用程序分开工作;然而,当一起使用时,ARKit抓住相机,我还没有弄清楚如何将ARKit帧数据传输到OpenCV以进行我计划的功能识别。

我目前的目标是使用ARFrameUpdated方法管道ARKit帧数据,如下所示:

public void ARFrameUpdated(UnityARCamera camera)
{
    // Get the frame pixel buffer
    var cvPixBuf = camera.videoParams.cvPixelBufferPtr;

    // Somehow convert to BGRa and insert into OpenCV datastructure

    // Perform OpenCV related actions 
}

但是,我不确定如何将camera.videoParams.cvPixelBufferPtr转换为可以与OpenCV一起使用的东西。

如果有人知道我可以用来做另一种方法,那也值得赞赏。

1 个答案:

答案 0 :(得分:0)

尝试创建一个新相机,将UnityARVideo添加到它,并将其剔除蒙版设置为空,并将其渲染为RenderTexture。它将为纹理渲染未经过处理的相机。