Opencv stitcher图像无缝拼接生成全景图像(四)

2023-10-08 13:58

本文主要是介绍Opencv stitcher图像无缝拼接生成全景图像(四),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:https://blog.csdn.net/hanshuning/article/details/41149137?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242.1

#include
#include
#include
#include “opencv2/highgui/highgui.hpp”
#include “opencv2/stitching/stitcher.hpp”

using namespace std;
using namespace cv;

bool try_use_gpu = false;
vector imgs;
string result_name = “result.jpg”;
int main()
{
Mat image11= imread(“1.jpg”);
Mat image22= imread(“2.jpg”);
Mat image33= imread(“3.jpg”);
Mat image44= imread(“4.jpg”);
Mat image55= imread(“5.jpg”);
Mat image66= imread(“6.jpg”);
Mat image77= imread(“7.jpg”);
Mat image88= imread(“8.jpg”);
Mat image99= imread(“9.jpg”);
Mat image1010= imread(“10.jpg”);
if (!image11.data || !image22.data|| !image33.data|| !image44.data|| !image55.data
|| !image66.data|| !image77.data|| !image88.data|| !image99.data|| !image1010.data
)
return 0;

Mat image1;
Mat image2;
Mat image3;
Mat image4;
Mat image5;
Mat image6;
Mat image7;
Mat image8;
Mat image9;
Mat image10;
resize(image11,image1,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image22,image2,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image33,image3,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image44,image4,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image55,image5,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image66,image6,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image77,image7,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image88,image8,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image99,image9,Size(400,300),0,0,CV_INTER_LINEAR); 
resize(image1010,image10,Size(400,300),0,0,CV_INTER_LINEAR); 

imgs.push_back(image1);
imgs.push_back(image2);
imgs.push_back(image3);
imgs.push_back(image4);
imgs.push_back(image5);
imgs.push_back(image6);
imgs.push_back(image7);
imgs.push_back(image8);
imgs.push_back(image9);
imgs.push_back(image10);

// 调用createDefault函数生成默认的参数
Stitcher stitcher = Stitcher::createDefault(try_use_gpu);

// 使用stitch函数进行拼接
Mat pano;
Stitcher::Status status = stitcher.stitch(imgs, pano);

// 保存结果图像
imwrite(result_name, pano);

// 显示源图像,和结果图像

imshow(“全景图像”, pano);

waitKey(0);
return 0;
}

测试原图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
全景拼接:

拼接要很久,还以为卡死了,几十秒才出来,这个只适合静态图片拼接,不适合实时视频拼接。

在这里插入图片描述

还可以。

这篇关于Opencv stitcher图像无缝拼接生成全景图像(四)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/165743

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字