C++和Opencv4.5 实现全景图像拼接_全景图像拼接 c++_人狮子的博客-程序员宅基地

技术标签: c++  计算机视觉  图像处理  opencv  

前言

最近刚下了最新版的opencv4.5,急不可待的试下操作,就用了opencv自带的Stitcher类拼接下图像,结果傻眼了,程序显示Stitcher没有createDefault成员,看了好久,终于找到了解决方法。

Stitcher原理

Stitcher类程序流程:

  1. 对图像特征点进行检测,默认是 orb(features from accelerated segment test)算法
  2. 对图像的特征点进行匹配
  3. 得到正确的图像序列。
  4. 求旋转矩阵
  5. 拼接

环境

OpenCV:4.5.0
VS:2019 C++
平台:Windows 10

代码演示

#include <iostream>  
#include <stdio.h>  
#include <opencv2/stitching.hpp>
#include < opencv2\opencv.hpp > 
#include <fstream>

using namespace cv;
using namespace std;

int main()
{
	vector<Mat> imgs;
	Mat image1,image2;
	
	image1 = imread("C://Users//**//Desktop//1.PNG");
	image2 = imread("C://Users//**//Desktop//2.PNG");

	resize(image1, image1, Size(600, 450), 0, 0, INTER_LINEAR);//图片是截取的,所以使用resize做了尺寸修改
	resize(image2, image2, Size(600, 450), 0, 0, INTER_LINEAR);

	imshow("原图1", image1); 
	imshow("原图2", image2);

	imgs.push_back(image1);
	imgs.push_back(image2);

	Ptr<Stitcher> stitcher = Stitcher::create();//调用create方法
	Mat pano;
	Stitcher::Status status = stitcher->stitch(imgs, pano);	// 使用stitch函数进行拼接
	if (status != Stitcher::OK)
	{
		cout << "Can't stitch images, error code = " << int(status) << endl;
		return -1;
	}
	// 显示结果图像
	imshow("全景图像", pano);
	waitKey(0); 
}

结果展示

原图
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

借鉴了以下大佬的文章,附上链接

OpenCV3.4.2 实现图像拼接与融合
OpenCV4中Stitch的应用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baidu_35536188/article/details/109692561

智能推荐

Rancher2.x+Pipeline+harbor+http环境搭建和问题记录_rancher harbor http_qq429205464的博客-程序员宅基地

Rancher2.x+Pipeline+harbor+http环境Rancher2.x环境搭建具体详情可参考官网搭建,下面附上官网中文版搭建过程https://www.cnrancher.com/docs/rancher/v2.x/cn/overview/harbor搭建过程参考https://blog.csdn.net/u013201439/article/details/7...

解决Win8下使用net use命令磁盘映射无效的问题_weixin_30483697的博客-程序员宅基地

该问题由UAC机制引起,可尝试如下方案:以管理员身份打开Powershell,运行:New-ItemProperty -Path "registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" -Value 1...

CSS3 实现雷达扫描图 demo_qq_1075654056的博客-程序员宅基地

通过css3实现炫酷的雷达扫描图:直接上代码:// index.html&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;雷达扫描图&lt;/title&gt; &lt;link rel="stylesheet" href="css/index.css"&gt;&lt;/head&gt;&lt;body&gt; &lt;div

Ubuntu常用命令与技巧_架构师思考实践的博客-程序员宅基地

Ubuntu常用命令与技巧 sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到“root” ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd -

HDU1224-Free DIY Tour(SPFA+路径还原)_weixin_30740295的博客-程序员宅基地

Weiwei is a software engineer of ShiningSoft. He has just excellently fulfilled a software project with his fellow workers. His boss is so satisfied with their job that he decide...

点云配准方法--PLICP_喵喵三三的博客-程序员宅基地

PLICP论文下载:Censi, A. (2008). "An ICP variant using a point-to-line metric." IEEE International Conference on Robotics &amp; Automation. IEEE,: 19-25.ICP方法存在以下缺点:依赖初始值,初始值不好时,迭代次数增加;对于较大的初始误差,可能会出现错误...

随便推点

开源网络框架_xiaohao_880的博客-程序员宅基地

Ion Retrofit Volley Glide Picasso Fresco

VMware配置NOI linux_ZeroCrazy.的博客-程序员宅基地

此教程为在Windows系统下用虚拟机软件VMware配置NOI linuxNOIP竞赛中部分赛区使用的是 wimdows系统 + linux虚拟机,部分赛区只提供 NOI linux 操作系统。(NOI linux是基于Ubuntu14的操作系统)VMware虚拟机百度网盘链接 提取码:oki3(该软件仅供学习交流使用,不可用于其他用途)NOI linux系统下载1.下载上面链接中...

JS 函数式编程: 高阶函数之柯里化(currying)和反柯里化(uncurrying)_超悠閒的博客-程序员宅基地

JS 函数式编程: 高阶函数之柯里化(currying)和反柯里化(uncurrying)文章目录JS 函数式编程: 高阶函数之柯里化(currying)和反柯里化(uncurrying)简介参考完整示例代码正文柯里化 Currying实现目标基础实现特殊终止条件函数内部柯里化柯里化的应用环境兼容性`Function.prototype.bind`反柯里化 Uncurrying`Function.prototype.call` 实现`Function.prototype.apply` 实现`Reflect

数据库定义实验_jigsaw6213的博客-程序员宅基地

一、实验内容数据库定义创建:创建企业员工管理数据库DBEM修改:修改DBEM的某个选项,然后还原删除:创建一个临时数据库tempDB,然后删除它基本表定义创建:创建DBEM中的三个基本表修改:自设场景对基本表进行修改,然后还原删除:创建一个临时表tempTB,然后删除它思考与练习1、在DBEM数据库存在的情况下,使用CREATE DATABASE语句新建 DBEM,查看错误信息,再尝试加上IF NOT EXISTS关键字创建 DBEM,看看有什么变化2、创建一个与employee表结构

php如何向文件中写入换行_freepenix的博客-程序员宅基地

今天编程,发现向文件中写入换行失败了试了很久都没找到办法!突然之间想到一个东东以前看书见过后来还是用这个东东给解决了!现在写出来预防将来忘记也希望能帮到需要帮助的朋友!直接看代码:<?php$stream = fopen("robots.txt", "w+");fwrite($stream, "你换行了吗?\r\n我已经换行了!");?>注

iOS7 和Xcode 5相关代码资源及示例_xcode 示例代码_jinpengnian1765的博客-程序员宅基地

注意下面的资源都是基于iOS7 和Xcode 5,最近将大量上传大量文章,1.马上着手开发应用程序系列 http://download.csdn.net/detail/langyifei/6590585 ,注意该材料是英文版2. 探险游戏 由于该游戏代码达到60多M,无法上传。所以需要根据书中的邮箱地址来,索取 利用Sprite工具包(Kit)工具包轻松打造令人信服的、 高性能的游

推荐文章

热门文章

相关标签