我使用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;
-.-“
答案 0 :(得分:1)
SDK旨在执行镜头失真校正,色差校正(不同颜色光的不同折射率导致图像中没有校正的彩色边纹),时间扭曲以及将来可能的其他校正。除非你有一个重量级的图形管道,你可以手动优化,所以最好使用SDK渲染选项。
您可以在此处了解SDK和各种更正:
http://static.oculusvr.com/sdk-downloads/documents/Oculus_SDK_Overview.pdf
它还解释了如何应用失真校正。 SDK是开源的,因此您也可以阅读源代码以获得更透彻的理解。
要解决命名空间问题,请不要切换到OVR命名空间!每次从OVR命名空间引用某些东西时,在它前面加上OVR :: - 例如,OVR :: Math - 毕竟这是命名空间的全部要点:p