OS X 10.11.6(Xcode / C ++)

时间:2016-09-14 13:23:38

标签: c++ xcode macos opencv

我试图在OS X 10.11.6上使用OpenCV进行简单的视频播放,但imshow()的性能非常糟糕。无论waitKey()参数值是什么,我都会从视频中获得1 fps左右。

疯狂的是:我将Windows 7作为在这台机器上运行的VMWare虚拟机,如果我在这个虚拟化的Windows上编译和运行完全相同的代码(在性能不佳的相同操作系统内运行),我得到了预期全帧率(30 FPS)。这意味着这与我的机器的内存或处理能力无关(i7,2.5GHZ,16GB RAM)。

这是我正在运行的代码

#include <opencv2/opencv.hpp>
using namespace cv;

int main(int argc, const char * argv[]) {

  VideoCapture cap("/myvideo.mp4");
  if(!cap.isOpened())
    return -1;

  Mat edges;
  namedWindow("edges",1);
  for(;;)
  {
    Mat frame;
    cap >> frame;
    imshow("edges", frame);
    if(waitKey(30) >= 0) break;
  }
  return 0;
}

我已将此代码移植到python(使用python的官方OpenCV端口)并且问题仍然存在。如果我在这个虚拟窗口上运行相同的python代码,我会得到预期的帧速率(30 FPS)。

我已经读过这可能与VSYNC有关,但我找不到禁用它并进行测试的方法。如何在虚拟化窗口上比在主机操作系统上运行得更快?!

非常感谢帮助。

谢谢。

卡西亚诺

0 个答案:

没有答案