AVI 비디오 파일과 웹캠이 있습니다. 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
해결책을 이미 찾았습니다. 첫 번째 프레임이 표시되지 않으므로 'if (! frame) break;'가 시작되기 전에 동영상보기가 종료됩니다. 그러나 문제는 여전히 파일에서 비디오를 검색하는 데 적절합니다. – Ivan