Opencv使用Stitcher类图像拼接生成全景图像

 更新时间:2018年01月22日 14:53:14   作者:-牧野-  
这篇文章主要为大家详细介绍了Opencv使用Stitcher类图像拼接生成全景图像,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Opencv中自带的Stitcher类可以实现全景图像,效果不错。下边的例子是Opencv Samples中的stitching.cpp的简化,源文件可以在这个路径里找到:
\opencv\sources\samples\cpp\stitching.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会自动排列。全景拼接效果很赞:


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

相关文章

  • 浅谈int8_t int64_t size_t ssize_t的相关问题(详解)

    浅谈int8_t int64_t size_t ssize_t的相关问题(详解)

    下面小编就为大家带来一篇浅谈int8_t int64_t size_t ssize_t的相关问题(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • C++类与对象之运算符重载详解

    C++类与对象之运算符重载详解

    运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的
    2021-10-10
  • C++ vector类的模拟实现方法

    C++ vector类的模拟实现方法

    这篇文章主要介绍了C++ vector类的模拟实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Vscode中接入Deepseek的实现

    Vscode中接入Deepseek的实现

    本文主要介绍了Vscode中接入Deepseek的实现,包括登录Deepseek官网、申请APIKEY、安装和配置VSCode插件,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • 华为云开发工具CodeArts IDE for C/C++开发使用指南

    华为云开发工具CodeArts IDE for C/C++开发使用指南

    CodeArts IDE是一个集成开发环境(IDE),它提供了开发语言和调试服务,本文主要介绍了华为云开发工具CodeArts IDE for C/C++ 开发使用指南,感兴趣的可以了解一下
    2023-08-08
  • C语言 冒泡排序算法详解及实例

    C语言 冒泡排序算法详解及实例

    这篇文章主要介绍了C语言 冒泡排序算法详解及实例的相关资料,需要的朋友可以参考下
    2016-11-11
  • 基于Opencv实现颜色识别

    基于Opencv实现颜色识别

    这篇文章主要为大家详细介绍了基于Opencv实现颜色识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • OpenGL绘制Bezier曲线的方法

    OpenGL绘制Bezier曲线的方法

    这篇文章主要为大家详细介绍了OpenGL绘制Bezier曲线的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C++数组指针和二维数组详情

    C++数组指针和二维数组详情

    这篇文章主要介绍了C++数组指针和二维数组,指针数组和二维数组在应用中常用于函数传参,下面我们就来看看指针数组和二维数组在应用中的具体使用吧,需要的朋友可以参考一下
    2021-10-10
  • C/C++高精度算法的实现

    C/C++高精度算法的实现

    这篇文章主要介绍了C/C++高精度算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论