当我在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);
}
答案 0 :(得分:1)
根据 Activity Monitor ,我刚刚执行了一个演示应用程序I presented here,它使用了~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);
}