虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > Opencv使用Stitcher类图像拼接生成全景图像

Opencv使用Stitcher类图像拼接生成全景图像
类别:C/C++编程   作者:码皇   来源:互联网   点击:

这篇文章主要为大家详细介绍了Opencv使用Stitcher类图像拼接生成全景图像,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Opencv中自带的Stitcher类可以实现全景图像,效果不错。下边的例子是Opencv Samples中的stitching.cpp的简化,源文件可以在这个路径里找到:
opencvsourcessamplescppstitching.cpp

    #include <fstream> #include "opencv2/highgui/highgui.hpp" #include "opencv2/stitching/stitcher.hpp" #include <iostream> using namespace cv;
    using namespace std;
    vector<Mat> imgs;
    //保存拼接的原始图像向量 //导入所有原始拼接图像函数 void parseCmdArgs(int argc, char** argv);
    int main(int argc, char* argv[]) {
    //导入拼接图像 parseCmdArgs(argc, argv);
    Mat pano;
    Stitcher stitcher = Stitcher::createDefault(false);
    Stitcher::Status status = stitcher.stitch(imgs, pano);
    //拼接 if (status != Stitcher::OK) //判断拼接是否成功 {
    cout << "Can't stitch images, error code = " << int(status) << endl;
    return -1;
    }
    namedWindow("全景拼接",0);
    imshow("全景拼接",pano);
    imwrite("D:\全景拼接.jpg",pano);
    waitKey();
    return 0;
    }
    //导入所有原始拼接图像函数 void parseCmdArgs(int argc, char** argv) {
    for(int i=1;
    i<argc;
    i++) {
    Mat img = imread(argv[i]);
    if (img.empty()) {
    cout << "Can't read image '" << argv[i] << "'n";
    }
    imgs.push_back(img);
    }
    }

图1:


图2:


图3:


图4:


图5:


5个图片的拍摄角度合起来在180°左右,没有经过压缩的,下载下来可以直接测试使用,传入顺序随意,Stitcher会自动排列。全景拼接效果很赞:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • python itchat实现微信好友头像拼接图的示例代码
  • Python实现好友全头像的拼接实例(推荐)
  • Python实现拼接多张图片的方法
相关热词搜索: Opencv Stitcher类图像拼接生成全景图像 O