Windows XP 32 비트에서 OpenCV 2.4.2로 VideoCapture 클래스를 사용하는 데 문제가 있습니다. 파일이나 카메라를 열지 못하고 고치는 것이 고통 스럽습니다. Im Visual Studio 2010을 사용하고 있지만 QTcreator에서 같은 결과를 얻은 코드도 시도했습니다.VideoCapture Windows에서 OpenCV 2.4.2 오류
테스팅 코드는 다음과 같다 :
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include <iostream>
#include <string>
#include <iomanip>
#include <sstream>
using namespace cv;
using namespace std;
int main()
{
const char* videoPath = "C:/video/";
string videoName = string(videoPath) + "avi.avi";
VideoCapture cap(videoName);
if(!cap.isOpened())
{
std::cout<<"Fail"<<std::endl;
return -3;
}
return 0;
}
출력은 항상 '-3'. 나는 그것을 디버깅 파일을 여는 중 오류 (../../modules/highgui/src/cap_ffmpeg_impl.hpp:361)
및 문제의 첫 번째 줄에 나타납니다 : Qt는 창조주는 경고를 보여줍니다
CvCapture* cvCreateFileCapture_FFMPEG_proxy(const char * filename)
{
CvCapture_FFMPEG_proxy* result = new CvCapture_FFMPEG_proxy;
if(result->open(filename))
return result;
delete result;
#if defined WIN32 || defined _WIN32
return cvCreateFileCapture_VFW(filename);
#else
return 0;
#endif
}
cap_ffmpeg.cpp 내부 파일
나는 스노우 레오파드 (snow leopard) 아래 맥에서 같은 코드를 테스트했으며 작동한다. 도서관 문제이기 때문에 여기에 놀라움이 없습니다. c-function cvCapture를 사용하여 동일한 경로 경로로 avi 파일을 쉽고 빠르게 열었습니다. mi 디버그 파일에 포함 된 'C : \ opencv \ opencv \ build \ x86 \ vc10 \ bin'의 모든 dll 파일을 받았습니다. 나는 tbb.dll과 모든 'C : \ opencv \ opencv \ 3rdparty \ ffmpeg'콘텐츠도 포함 시켰습니다.
이것은 나를 미치게 만들어서 도움이 될 것입니다.
미리 감사드립니다.
첫 번째 답변은 [이 질문] (http://stackoverflow.com/questions/1987782/why-opencvs-cvcreatecameracure-and-cvcreatefilecapture-do-not-work-how)이 될 수 있습니다. opencv_ffmpeg242d를 복사 해보십시오. .dll 또는 opencv_ffmpeg242.dll을 현재 작업 디렉토리로 복사하십시오. 또한 OpenCV를 직접 만들었습니까? 모든 의존성이 괜찮은가요? – Sassa
나는 여전히 같은 문제가있다. 아마도 일부 포럼에서 코덱 업데이트가 필요하다고 읽었습니다. 나는 그것을 시도 할 것이다. 문제를 해결 했습니까? –