我怎么能每秒只处理2帧?在c或c++中循环时如何退出
How can i processing only 2 frame per second ?How can I exit while loop in c or c++?
当我运行此代码并按键盘上的Esc键时,我无法退出while循环。我在另一个程序中(在main()函数中)使用相同的代码,并退出while循环。我在main()函数中没有使用下面的代码。它是按函数调用的,它在main(()中使用过。我想停止处理视频捕获和其他工作,我不想完全关闭程序。我想每秒只处理2帧,我该怎么做?(在opencv2.4.6、windows7、vs2012中从视频或摄像头捕获帧时)请帮帮我。
void Demo::processVideo()
{
VideoCapture cap(this->videofile.c_str());
cout<<"Loading classifier...."<<endl;
MultiTrain mt;
mt.loadModel(("f:dataset/eye_svm_model.xml"));
int fps=(int) cap.get(CV_CAP_PROP_FPS);
if(!cap.isOpened())
{
cout<<"problems with avi file"<<endl;
}
else
{
cout<<"Processing video...."<<endl;
Mat frame;
int k = 0,key1=0;
while(1)
{
//char c = WaitKey(15);
// if( c == 27 ) break;
cap>>frame;
int res = (int)mt.getPrediction(frame);
cout<<"Prediction for frame #"<<k<<" => "<<res<<endl;
this->predictions.push_back(res);
k++;
}
cap.release();
}
}
这应该是一个类型转换问题,因为函数原型是int cvWaitKey(int)
在循环中尝试以下操作,然后按ESC键退出程序。
char c = cvWaitKey(15);
if( c == 27 ) break;
如果您想要精确的时间控制或帧速率控制,您可以计算时钟信号。有关示例的详细信息,请参见此处。祝你好运,编码快乐。
相关文章:
- Python中的for循环与C++有何不同
- 退出简单while循环时出现问题
- 虽然循环在使用回车键时不退出程序
- C++ 自动点击器未退出循环
- 使用 while 或 do while 退出循环
- 虽然循环即使应用了错误条件也不会退出
- 如何使用布尔值(C++)退出while循环
- 如果我按enter键,我如何退出c++中的循环
- Craps游戏在循环不满足退出条件时执行
- 如何修复不会在退出选择时终止的 do-while 循环
- 虽然具有多个 OR 条件的循环不退出循环
- 为什么我的程序在 while 循环后退出
- 虽然循环不退出,即使它应该退出
- QThread从未因QCoreApplication事件循环而退出
- 在条件为false之前循环时退出
- Ctrl+Z无法在循环时退出
- c++ For循环不退出
- 我的while循环过早退出
- 在x次循环后退出while循环
- 如何在for循环中退出(转到父循环的下一个元素)for循环