Мне отчаянно нужна помощь с модулем сшивания opencv. Мне нужно создать панорамную фотографию, используя метод «стежка» в opencv. Ниже приведено то, что я имею до сих пор … но когда я запускаю программу, я получаю эту ошибку: Нужно больше изображений. Есть ли эксперт по OpenCV, который может помочь мне с этой ошибкой?
IplImage* img1 = cvLoadImage("/Users/myName/Desktop/image1.jpg", CV_LOAD_IMAGE_COLOR);
IplImage* img2 = cvLoadImage("/Users/myName/Desktop/image2.jpg", CV_LOAD_IMAGE_COLOR);
Mat vecImg1 = img1;
Mat vecImg2 = img2;
Mat allImages;
allImages.push_back(vecImg1);
allImages.push_back(vecImg2);
Mat outputImage;
Stitcher stitchImg = Stitcher::createDefault();
Stitcher::Status s = stitchImg.stitch(allImages, outputImage);
cout << "status: " << s << endl;
cvNamedWindow("stitch images", CV_WINDOW_AUTOSIZE);
cvShowImage("stitch images", &outputImage);
cvWaitKey(0);
cvDestroyWindow("stitch images");
Я думаю, «allImages» должен быть типа vector<Mat>
,
Проверьте образец OpenCV «samples / cpp / stitching.cpp».
Я действительно нашел способ обойти.
В Xcode, в настройках сборки, я изменил тип компилятора с Apple LLVM на LLVM GCC 4.2, и теперь мой код генерирует панорамное изображение просто отлично!
Спасибо!
В функции класса брошюровщика opencv находит совпадения между изображениями. Если введенное вами изображение не имеет или имеет очень мало общих черт, оно не будет воспринимать эти изображения как изображения того же вида.
Следовательно, требуется больше изображений