在Windows XP 32位下,使用VideoCapture類與OpenCV 2.4.2時出現問題。 它不打開任何文件或相機,並修復它是一個痛苦。 即時通訊使用Visual Studio 2010,但我也嘗試了與QTcreator中的代碼具有相同的結果。Windows中的VideoCapture 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'。 Qt創建者顯示警告 :錯誤開口文件(../../modules/highgui/src/cap_ffmpeg_impl.hpp:361)
我調試它和問題出現在第一行:
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內部文件中。
我已經下雪豹Mac上測試相同的代碼和它的作品。這裏沒有什麼驚喜,因爲它一定是一個圖書館問題。 我已經使用c函數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-cvcreatecameracapture-and-cvcreatefilecapture-do-not-work-how)可能是你的情況:嘗試複製opencv_ffmpeg242d .dll或opencv_ffmpeg242.dll到您當前的工作目錄。另外,你自己建立了OpenCV嗎?你確定所有的依賴關係都可以嗎? – Sassa
我仍然有同樣的問題。我在某些論壇上看到可能需要更新編解碼器。我會嘗試。你解決了這個問題嗎? –