0

3つの画像をつなぎ合わせようとしています。これを行うために、OpenCV 2.4.10 と Microsoft Visual C++ 2010 Express を選択しました。
画像は 1500x1500px で、読み取り時は CV_8UC3 です。
私は32ビット用に構築しており、OpenCVで動作する他のいくつかのものをすでに持っているので、プロジェクトはパスなどで正しく設定されていると思います..

奇妙なことに、このエラーは時々しか発生せず、2 つ以上の画像をステッチしようとした場合にのみ発生します。

エラーメッセージは次のとおりです。

スティッチング Test.exe の 0x5841dcaa で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x00000004。

その後、「Chores.cpp」の99行目または「TaskCollection.cpp」の189行目に自動的に到達するので、それがエラーの原因だと思います。(パス C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src)

そしてここにコード:

#include <iostream>

//OPENCV
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
//OPENCV STITCHING
#include <opencv2\stitching\stitcher.hpp>

using namespace std;
using namespace cv;

int main(){
    Mat panoramaImage;
    vector<Mat> inputImages;

    inputImages.push_back(imread("../../V1.bmp"));
    inputImages.push_back(imread("../../V2.bmp"));
    inputImages.push_back(imread("../../V3.bmp"));

    Stitcher stitcher = Stitcher::createDefault();
    Stitcher::Status stitcherStatus = stitcher.stitch(inputImages, panoramaImage);

    imshow("Stitching Result", panoramaImage); 
    waitKey(0);

    return 0;
}

誰かが提案を得ましたか?

4

1 に答える 1