1

OpenCVのstitcherモジュールを使って画像をスティッチしてみました。以下は私のコードです(コア部分)。

int main()
{
    Mat img1 = imread("5.jpg");
    Mat img2 = imread("6.jpg");
    //Mat img3 = imread("11.jpg");
    imgs.push_back(img1);
    imgs.push_back(img2);
    //imgs.push_back(img3);

    Mat pano; // Mat to store the output pano image
    Stitcher stitcher = Stitcher::createDefault(try_use_gpu); // create a Stitcher object
    Stitcher::Status status = stitcher.stitch(imgs, pano); // stitch the input images together
    cout << "hello" <<endl;
    if (status != Stitcher::OK)
    {
        cout << "Can't stitch images, error code = " << int(status) << endl;
        return -1;
    }
    imshow("pano",pano);
    imwrite(result_name, pano); // write the result to the output image
    waitKey(0);
    return 0;
}

上記のコードの「imgs」は、Mat 型のベクターです。

これに似た類似のコードをネットでたくさん見ましたが、なぜ私のコードに入力画像のサイズに大きな制限があるのか​​ わかりません。入力画像のサイズが 800 * 600 程度であれば問題なく動作します。しかし、サイズが 650 * 650 または 1280 * 640 などの場合、コンソール プロンプトはプログラムの終了後すぐに閉じます。また、「panoResult.jpg」には画像が保存されません。また、画像も表示されません。デバッグ中にVisual Studio 2010 が表示Image_stitching2.exe: Native' has exited with code -1 (0xffffffff). されます。

誰でもこれを手伝ってもらえますか?私はこれを修正するためにすでに数時間を費やしていますが、正しくないため、これについて本当に進歩する必要があります. ヒントやヘルプは私にとって素晴らしいものです。

4

0 に答える 0