1

でaviファイルを書き込もうとして数時間を費やしましたCvVideoWriter。サイズが5.54KBで、フレームが含まれていないファイルを常に取得します。CvVideoWriternullでないかどうかを確認しましたが、そうではありません。また、IplImageをcvShowImageで表示しようとしましたが、正しく表示されます。複数のコーデック(DIVX、H264、..)を試しました。

VideoWriterが次のように定義されている場合、関数はフレームをjpgファイルに保存することがわかりました。

CvVideoWriter* recorder = cvCreateVideoWriter("test0001.jpg", CV_FOURCC('I', 'Y', 'U', 'V'), -1, Size(w,h), true);

これは私のプログラムです:

IplImage* myIplFrame=...;
CvVideoWriter* recorder = cvCreateVideoWriter("test.avi", CV_FOURCC('I', 'Y', 'U', 'V'), 10, Size(w,h), true);

cvShowImage("test",myIplFrame); //showing image properly
cvWriteFrame(recorder, myIplFrame);
cvWaitKey(500); //not helping

cvReleaseVideoWriter(&recorder);

私は何が間違っているのですか?

4

2 に答える 2

1

ビデオライターが常にこのタイプのファイルを作成できるように、IYUVコーデックを組み込む必要があります。

ファイルを作成できるので、権限は正しいです。

cv標準形式の代わりに古いiplimageを使用している正当な理由はありますか?
これが私が最初にチェックすることです。

http://docs.opencv.org/を参照してください

ps。画像を表示していない場合は、waitkey()は必要ありません。

于 2013-01-05T18:37:57.770 に答える
0

私はこれに関してSOで別の同様のスレッドを見つけました、そして誰かがあなたがVSの代わりにMinGWでコンパイルするべきであると言いました。私はそれを行い、新しいライブラリを含め、.proファイル(Qt)に次のようなパスを含めました:

INCLUDEPATH += C:\OpenCV-2.3.1\mingwBuild\install\include

LIBS += -LC:\\OpenCV-2.3.1\\opencv\\build\\x86\\mingw\\lib \
    -lopencv_core231 \
    -lopencv_highgui231

opencvフォルダのライブラリをどのように使用したかに注目してください。これは、たとえばCMakeで構成および生成した後の、ソースを含むフォルダーです。

読者であるあなたが同じ問題を抱えていることを示すもう1つのヒントは、cv :: Matが認識されないか、奇妙なエラーが発生した場合です。

それが役に立てば幸い。

于 2013-01-05T18:47:11.153 に答える