Windows XP 32ビットでOpenCV 2.4.2でVideoCaptureクラスを使用する際に問題があります。 ファイルやカメラが開かず、固定しても痛いです。 私はVisual Studio 2010を使用していますが、QTcreatorのコードも同じ結果で試してみました。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'。私はそれをデバッグエラー開くファイル(../../modules/highgui/src/cap_ffmpeg_impl.hpp:361)
と問題が最初の行に表示されます: のQt Creatorは 警告を示し
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の下でMacで同じコードをテストしています。それは図書館の問題でなければならないのでここで驚きはありません。 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-cvcreatecameracapture-and-cvcreatefilecapture-do-not-work-how)への最初の答えはあなたの場合です:opencv_ffmpeg242dをコピーしてみてください.dllまたはopencv_ffmpeg242.dllを現在の作業ディレクトリにコピーします。また、自分でOpenCVをビルドしましたか?すべての依存関係は大丈夫ですか? – Sassa
私はまだ同じ問題を抱えています。私はいくつかのフォーラムで、おそらく更新用のコーデックが必要であると読んだ。私はそれを試みます。あなたは問題を解決しましたか? –