当我在 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/