1

OpenCV スティッチャーを使用して一連の画像をつなぎ合わせ、このエラーが発生し続けるコードを作成しようとしています。

OpenCV エラー: アサーションに失敗しました (dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0)) cv::resize、ファイル C:\Users\car4p\Downloads\opencv-master\opencv-master\modules で\imgproc\src\imgwarp.cpp、3230行目

私は周りを検索しましたが、これは画像の読み取りに問題がないことがわかりました。画像は両方とも正常に表示され、列が0を超えています。出力にエラーがあると思いますが、修正方法がわかりません。誰かが以前にこれに対処したことがある場合、または解決策を知っている場合は、大歓迎です。

OpenCV 3.1 と Visual Studio 2015 を使用して、C++ で書いています。

画像を読み取るためのコード

imgs.push_back(imread("testerer1.jpg"));
imgs.push_back(imread("testerer2.jpg"));
imgs.push_back(imread("testerer3.jpg"));    
imgs.push_back(imread("testerer4.jpg"));

画像をスティッチするためのコード

Mat stitchImages(vector<Mat> imgs) {
    Stitcher stitchs;
    vector<Mat> stitchedImg;

    stitchs.createDefault(false);

    Stitcher::Status status = stitchs.stitch(imgs, stitchedImg);

    return stitchedImg[0];
}
4

1 に答える 1

0

sticher クラスの 2 番目のパラメーターは、ベクトルではなく Mat (出力配列) です < Mat >

http://docs.opencv.org/master/d2/d8d/classcv_1_1Stitcher.html#detailsを参照してください

于 2016-04-30T08:22:46.187 に答える