C++ C++;OpenCv:缝合2个以上的图像

C++ C++;OpenCv:缝合2个以上的图像,c++,opencv,image-stitching,opencv-stitching,C++,Opencv,Image Stitching,Opencv Stitching,我正试图用我在互联网上找到的代码将图像拼接在一起 void main() { vector <Mat> vImg; Mat rImg; vImg.push_back(imread("PATH IMG 1")); vImg.push_back(imread("PATH IMG 2")); vImg.push_back(imread("PATH IMG 3")); imshow("0",vImg[0]); imshow("1",vImg[1]); i

我正试图用我在互联网上找到的代码将图像拼接在一起

void main()
{
  vector <Mat> vImg;
  Mat rImg;


  vImg.push_back(imread("PATH IMG 1"));
  vImg.push_back(imread("PATH IMG 2"));
  vImg.push_back(imread("PATH IMG 3"));

  imshow("0",vImg[0]);
  imshow("1",vImg[1]);
  imshow("2",vImg[2]);



  Stitcher stitcher = Stitcher::createDefault();



  Stitcher :: Status status = stitcher.stitch(vImg,rImg);


    imshow("Stitching Result", rImg);



  waitKey(0);

}
void main()
{
向量vImg;
马口铁;
向回推(imread(“路径IMG 1”);
向回推(imread(“路径IMG 2”);
向回推(imread(“路径IMG 3”);
imshow(“0”,vImg[0]);
imshow(“1”,vImg[1]);
imshow(“2”,vImg[2]);
Stitcher-Stitcher=Stitcher::createDefault();
缝合器::状态状态=缝合器缝合(vImg、rImg);
imshow(“缝合结果”,rImg);
等待键(0);
}
代码可以很好地处理两个图像,但在包含第三个图像时失败。错误消息是:“testStiching.exe中0x51b4dcaa处的未处理异常:0xC0000005:访问冲突读取位置0x00000004”

我确信我的图像路径是正确的(imread可以很好地工作),我的图像在尺寸上是相似的

我已经寻找了一个解决方案,但要么没有人回复提出问题的人,要么他们的解决方案不适用于我的情况

谢谢你的帮助

编辑:这是我用于代码和图像的源代码


它是否适用于两幅图像的任意组合?so1+2;1+3和2+3?或者它在这些组合中失败了吗?它在1+2,2+3下工作,但在1+3下失败了(当然正确的顺序是1,2,3)。错误信息类似,但位置不同。您可以尝试订单3;2.1?访问冲突是否发生在缝合过程中或cv::imshow中?3,2,1也会失败。我对imshow的结果进行了评论,但它仍然失败。它是否能与两幅图像的任意组合一起工作?so1+2;1+3和2+3?或者它在这些组合中失败了吗?它在1+2,2+3下工作,但在1+3下失败了(当然正确的顺序是1,2,3)。错误信息类似,但位置不同。您可以尝试订单3;2.1?访问冲突是否发生在缝合过程中或cv::imshow中?3,2,1也会失败。我评论了imshow的结果,结果还是失败了