我正在尝试使用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());
}
我发现自己想知道为什么我看到的不仅仅是一帧。我在网上看到的关于cvQueryFrame的一切都说它检索当前帧。没有我在哪里看到有关“当前”框架如何/何时/何处前进的信息。
cvQueryFrame更像是从文件或流中读取,因为它读取数据然后准备读取下一段数据,或者当前帧以其他方式前进?