如何用Oculus Rift显示立体相机?

时间:2014-04-07 09:44:17

标签: opencv webcam oculus

我使用OpenCV在新窗口中显示来自立体相机的左右图像。现在我想在Oculus Rift上看到相同的东西但是当我连接Oculus时,图像不会变成Characteristic Circled image适合lens inside the Oculus的... 我需要自己处理图像吗?这不是自动的吗?

这是显示windows的代码:

            cap >> frame; //cap= camera 1 & cap2=camera 2
            cap.read(frame);
            sz1 = frame.size();

            //second camera
            cap2 >> frame2;
            cap2.read(frame2);

            sz2 = frame2.size();

             cv::Mat bothFrames(sz2.height, sz2.width + sz1.width, CV_8UC3);

           // Move right boundary to the left.                
           bothFrames.adjustROI(0, 0, 0, -sz1.width);                 
           frame2.copyTo(bothFrames);

           // Move the left boundary to the right, right boundary to the right.             
           bothFrames.adjustROI(0, 0, -sz2.width, sz1.width);               
           frame.copyTo(bothFrames);

           // restore original ROI.             
           bothFrames.adjustROI(0, 0, sz2.width, 0);

           cv::imencode(".jpg", bothFrames, buf, params);

我有另一个问题。我正在尝试将OVR库添加到我的代码中,但是我有错误“System Ambibuous Symbol”,因为OVR库中的某些类使用了相同的namaspace ...当我添加

时会出现此错误
#include "OVR.h"
using namespace OVR;

-.-“

1 个答案:

答案 0 :(得分:1)

SDK旨在执行镜头失真校正,色差校正(不同颜色光的不同折射率导致图像中没有校正的彩色边纹),时间扭曲以及将来可能的其他校正。除非你有一个重量级的图形管道,你可以手动优化,所以最好使用SDK渲染选项。

您可以在此处了解SDK和各种更正:

http://static.oculusvr.com/sdk-downloads/documents/Oculus_SDK_Overview.pdf

它还解释了如何应用失真校正。 SDK是开源的,因此您也可以阅读源代码以获得更透彻的理解。

要解决命名空间问题,请不要切换到OVR命名空间!每次从OVR命名空间引用某些东西时,在它前面加上OVR :: - 例如,OVR :: Math - 毕竟这是命名空间的全部要点:p