0

我迫切需要 opencv 拼接模块的帮助。我需要使用 opencv 中的“stitch”方法创建全景摄影。以下是我到目前为止的内容.. 但是当我运行程序时出现此错误:需要更多图像。是否有 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");
4

3 回答 3

4

我猜“allImages”应该是类型vector<Mat>

查看 OpenCV 示例“samples/cpp/stitching.cpp”。

于 2012-11-03T08:48:47.267 回答
1

我实际上找到了解决方法。

在 Xcode 中,在 Build Settings 下,我将 Compiler 类型从 Apple LLVM 更改为 LLVM GCC 4.2,现在我的代码生成全景图像就好了!

谢谢!

于 2012-11-04T08:54:50.770 回答
0

在stitcher类函数中,opencv查找图像之间的特征匹配。如果您输入的图像没有或很少有共同特征,则不会将这些图像视为同一视图的图像因此需要更多图像

于 2016-09-07T10:08:18.937 回答