Opencv cvQueryFrame是否提前当前帧?

Opencv cvQueryFrame是否提前当前帧?,opencv,Opencv,我试图使用O'Reilley的书来学习OpenCV,我发现示例程序提出的问题和它们回答的问题一样多。在显示视频的非常基本的程序中: #include <highgui.h> #include <string> int main( int argc, char** argv){ std::string name = "Example 2"; cvNamedWindow(name.c_str(),CV_WINDOW_AUTOSIZE); CvCapture*

我试图使用O'Reilley的书来学习OpenCV,我发现示例程序提出的问题和它们回答的问题一样多。在显示视频的非常基本的程序中:

#include <highgui.h>
#include <string>

int main( int argc, char** argv){
  std::string name = "Example 2";

  cvNamedWindow(name.c_str(),CV_WINDOW_AUTOSIZE);
  CvCapture*  capture = cvCreateFileCapture( argv[1]);
  IplImage* frame;

  while(1) {
    frame = cvQueryFrame( capture );
    if ( !frame ) break;
    cvShowImage (name.c_str(), frame);
    char c = cvWaitKey(33);
    if (c == 27) break; //User hits ESC key - ASCII value 27
  }

  cvReleaseCapture( &capture );
  cvDestroyWindow(name.c_str());

}
#包括
#包括
int main(int argc,字符**argv){
std::string name=“示例2”;
cvNamedWindow(name.c_str(),CV_WINDOW_AUTOSIZE);
CvCapture*capture=cvCreateFileCapture(argv[1]);
IplImage*框架;
而(1){
帧=cvQueryFrame(捕获);
如果(!帧)中断;
cvShowImage(name.c_str(),frame);
char c=cvWaitKey(33);
如果(c==27)中断;//用户点击ESC键-ASCII值27
}
cvReleaseCapture(&capture);
CVD窗口(name.c_str());
}
我发现自己在想为什么我看到的不仅仅是一个画面。我在网上读到的所有关于cvQueryFrame的文章都说它检索当前帧。没有我在哪里看到过任何关于“当前”帧如何/何时/何处前进的信息


<> P> CVQueReGrand是否更像是从文件或流中读取,因为它读取数据,然后准备读取下一段数据,或者当前帧以其他方式前进?

推荐使用新的C++接口而不是过时的C。这个函数读取当前帧(如果有的话)并对其进行解码(以便显示),然后准备在下一次迭代中读取下一帧,我认为对于当前帧来说是类似和一起的@康斯坦丁-谢谢。我刚找到一个参考资料解释说cvGrab“推进”了框架。。。