C++ OpenCV缝合

C++ OpenCV缝合,c++,opencv,image-stitching,panoramas,C++,Opencv,Image Stitching,Panoramas,我迫切需要opencv缝合模块的帮助。我需要使用opencv中的“缝合”方法创建全景摄影。下面是我到目前为止的情况。。但是当我运行程序时,我得到了一个错误:需要更多的图像。是否有OpenCV专家可以帮助我解决此错误 IplImage* img1 = cvLoadImage("/Users/myName/Desktop/image1.jpg", CV_LOAD_IMAGE_COLOR); IplImage* img2 = cvLoadImage("/Users/myName/Desktop/ima

我迫切需要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");
IplImage*img1=cvLoadImage(“/Users/myName/Desktop/image1.jpg”,CV\u LOAD\u IMAGE\u COLOR);
IplImage*img2=cvLoadImage(“/Users/myName/Desktop/image2.jpg”,CV\u LOAD\u IMAGE\u COLOR);
Mat-vecImg1=img1;
Mat-vecImg2=img2;
大法师;
所有图像。向后推(向量1);
所有图像。推回(vecImg2);
Mat输出图像;
Stitcher-stitchImg=Stitcher::createDefault();
缝合器::状态s=缝合缝合(所有图像,输出图像);
我猜“allImages”应该是向量的类型

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

我想“allImages”应该是
vector
类型


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

我实际上找到了一种解决方法

在Xcode中,在构建设置下,我将编译器类型从Apple LLVM更改为LLVM GCC 4.2,现在我的代码可以生成全景图像了


谢谢

我真的找到了一条路

在Xcode中,在构建设置下,我将编译器类型从Apple LLVM更改为LLVM GCC 4.2,现在我的代码可以生成全景图像了


谢谢

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

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

我不是OpenCV专家,但您是否尝试向
所有图像添加更多图像
?两张图像就足够了。它们之间有足够的重叠吗?是的,两个之间有足够的重叠,因为它们是用于执行缝合的样本图像(为什么不从OpenCV提供的示例代码开始?我不是OpenCV专家,但您是否尝试将更多图像添加到
所有图像中?
?两个图像应该足够了。它们之间是否有足够的重叠?是的,两个图像之间有足够的重叠,因为它们是用于执行缝合的示例图像。:(为什么不从OpenCV提供的示例代码开始呢?如果我将所有图像更改为vector,那么我会得到一个错误:“cv::_InputArray::_InputArray(std::_1::vector const&)”,它是说,架构x86的未定义符号\u 64I引用了缝合.cpp,但我不断得到错误..:(.如果我将所有图像更改为vector,那么我会得到一个错误:“cv::_InputArray::_InputArray(std::_1::vector const&)”,这是说,架构x86_64I的未定义符号引用了缝合.cpp,但我不断得到错误:()。