0

opencv の VideoWriter を使用してビデオを書き込もうとしています。コードは次のとおりです。

int main() {
    //read image from file:
    Mat image(cvLoadImage("temp.bmp"));
    //create videowriter (DivX codec):
    VideoWriter record("output.avi", CV_FOURCC('D','I','V','X'), 30, image.size(), true);
    for (int i=0; i<100; ++i) {
        //write frame to video:
        record<<image;
    }
}

これは、私が書き込もうとしている画像 (temp.bmp) です。 入力

(元の bmp ファイルをアップロードできますが、この png を使用しても結果は同じです - 以下を参照してください)。

しかし、ビデオ (output.avi) を開くと、次のように表示されます。 ここに画像の説明を入力

なぜビデオはそんなにシフトされたのですか?さまざまなコーデックを試し、 cvtColor (CV_BGR2xxx)を使用してイメージをさまざまなタイプに変換しましたが、うまくいきませんでした。

バグを報告する時が来ましたか?

4

2 に答える 2

0

この問題を OpenCV 2.4.1 でテストしたところ (以前はバージョン 2.3.1 でテストしました)、正常に動作しました! バグだったようです。

于 2012-06-29T17:28:40.317 に答える
0

私はあなたと同じ問題を抱えています:

VideoWriter out_capture("video.avi",CV_FOURCC('M','J','P','G'), 30, RESULTS[0].size() ,true);

for(int i = 0 ; i < RESULTS.size() ; i++)
{
    Mat img;
    RESULTS[i].copyTo(img);

    if(img.empty())
        break;
    out_capture << img;
}

RESULTS私のすべての画像を格納するベクトルです。

ビデオのフレームは次のとおりです。 ここに画像の説明を入力

私が欲しいのはこれです: ここに画像の説明を入力

于 2014-04-01T14:54:24.217 に答える