有一个AVI videofile和一个摄像头。 cvQueryFrame
在两种情况下均返回null。代码已应用(仅适用于凸轮):为什么OpenCV的`cvCreateCameraCapture`和`cvCreateFileCapture`不起作用?
#include "highgui.h"
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
cvNamedWindow("KillCam", CV_WINDOW_AUTOSIZE);
cvWaitKey(0);
CvCapture* capture = cvCreateCameraCapture(-1);
assert(capture != NULL);
IplImage* frame;
while(1){
frame = cvQueryFrame(capture);
if(!frame) break;
cvShowImage("KillCam", frame);
char c = cvWaitKey(33);
if(c == 30) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("KillCam");
}
只是一种预感:尝试使用索引0的相机。还要检查您的相机是否安装正确(您可以在应用程序中使用它吗?)并且目前没有其他应用程序正在使用相机。 – James 2010-01-02 12:14:34
已经找到解决方案。看起来第一帧没有显示出来,所以if(!frame)break;'在视频开始前终止视频的观看。但这个问题仍然与从文件中检索视频有关。 – Ivan 2015-10-19 13:35:03