Я пытаюсь отладить пример для сшивания изображений в этот сайт.
Вот мой полный код.
#include < stdio.h >
#include < opencv2\opencv.hpp >
#include < opencv2\stitching\stitcher.hpp >
#ifdef _DEBUG
#pragma comment(lib, "opencv_core300d.lib")
#pragma comment(lib, "opencv_imgproc300d.lib") //MAT processing
#pragma comment(lib, "opencv_highgui300d.lib")
#pragma comment(lib, "opencv_stitching300d.lib")
#else
#pragma comment(lib, "opencv_core300.lib")
#pragma comment(lib, "opencv_imgproc300.lib")
#pragma comment(lib, "opencv_highgui300.lib")
#pragma comment(lib, "opencv_stitching300.lib")
#endif
using namespace cv;
using namespace std;void main()
{
vector< Mat > vImg;
Mat rImg;
vImg.push_back(imread("./stitching_img/1.jpg"));
vImg.push_back(imread("./stitching_img/2.jpg"));
vImg.push_back(imread("./stitching_img/3.jpg"));
vImg.push_back(imread("./stitching_img/4.jpg"));
vImg.push_back(imread("./stitching_img/5.jpg"));
vImg.push_back(imread("./stitching_img/6.jpg"));Stitcher stitcher = Stitcher::createDefault();unsigned long AAtime = 0, BBtime = 0; //check processing time
AAtime = getTickCount(); //check processing time
Stitcher::Status status = stitcher.stitch(vImg, rImg);
BBtime = getTickCount(); //check processing time
printf("%.2lf sec \n", (BBtime - AAtime) / getTickFrequency()); //check processing time
if (Stitcher::OK == status)
imshow("Stitching Result", rImg);
else
printf("Stitching fail.");
waitKey(0);
}
Однако я получаю ошибку:
Исключение первого шанса в 0x00007FFFB36A8B9C в opencvtest1.exe:
Microsoft C ++ исключение: cv :: Исключение в ячейке памяти
0x0000003F09CBD6B0. Необработанное исключение в 0x00007FFFB36A8B9C в
opencvtest1.exe: Microsoft C ++ исключение: cv :: Исключение в памяти
местоположение 0x0000003F09CBD6B0.
Я искал необработанные исключения, но каждый ответ предлагал конкретные решения этих проблем, поэтому я не мог понять, что происходит в моем конкретном случае.
Пожалуйста, помогите мне понять, что я делаю неправильно в коде.
Задача ещё не решена.