c - OpenCV 'cvQueryFrame' 在 OS X 上非阻塞?

标签 c opencv webcam video-capture blocking

当我在 Windows 上执行 cvQueryFrame 时,API 会阻塞,直到图像被传送。在 Mac OS X 上,我的 CPU 使用率为 100%,同时只查询图像并将其显示在窗口中。我在最新的 SVN 版本。谁能证实我的经历?难道我做错了什么?有解决方法吗?

我的循环代码如下所示:

while(key != 'q') {
    if (frame)
        cvShowImage("Live Cam", frame);
    frame = NULL;
    frame = cvQueryFrame(capture);
    key = cvWaitKey(10);
}

最佳答案

我刚刚执行了一个演示应用程序 I presented here根据 Activity Monitor,它使用了大约 22% 的 CPU。我在装有 OpenCV 2.1(32 位)的 Macbook Pro 13"上运行该程序。

如果您注意该代码,您会发现循环与您的有点不同:

IplImage* frame = NULL;
char key = 0;
while (key != 27) // ESC
{    
  frame = cvQueryFrame(capture);
  if(!frame) 
  {
      fprintf( stderr, "!!! cvQueryFrame failed!\n" );
      break;
  }

  cvShowImage("Live Cam", frame );
  key = cvWaitKey(10);
}

关于c - OpenCV 'cvQueryFrame' 在 OS X 上非阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4063096/

相关文章:

python - Arduino 上的 TCP 问题。从 Python TCP 套接字服务器读取字符串

c - SDL2 和 Xcode 的渲染器问题

c++ - 将 IplImage 转换为 Qpixmap

python - 使用 OpenCL 从灰度图像中过滤全白像素

c# - 使用 Microsoft LifeCam 和 C# 捕获图像

c++ - OpenCV 2.3 : Convert Mat to RGBA pixel array

c - dup2 错误的文件描述符错误

c - 如何在 Ubuntu 10.04 (lucid) 上安装 xlibs-dev?

image - 使用OpenCV和Qt将图像加载到硬盘中

javascript - jQuery 网络摄像头/闪光灯 : How to detect if webcam is active?