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;
}
誰かが提案を得ましたか?