当前位置: 首页 > article >正文

opencv中stitch图像融合

 openv版本: opencv249 

 vs :2010

 qt : 4.85

#include "quanjing.h"

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/stitching/stitcher.hpp>
using namespace std;
using namespace cv;
bool try_use_gpu = false;
vector<Mat> imgs;
string result_name = "dst1.jpg";
#include <QApplication>
#include  <QMessageBox>
using namespace cv;


quanjing::quanjing(QWidget *parent, Qt::WFlags flags)
	: QMainWindow(parent, flags)

{
	ui.setupUi(this);

	connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(btnClick()));	
}


void quanjing::btnClick(){

	cv::Mat image2 = cv::imread("C:/Users/TR/Desktop/quan/2.jpg");
	cv::Mat image3 = cv::imread("C:/Users/TR/Desktop/quan/3.jpg");
	cv::Mat image4 = cv::imread("C:/Users/TR/Desktop/quan/4.jpg");
	cv::Mat image5 = cv::imread("C:/Users/TR/Desktop/quan/5.jpg");

	imgs.push_back(image2);
	imgs.push_back(image3);
	imgs.push_back(image4);
	imgs.push_back(image5);

	Stitcher   stitcher = Stitcher::createDefault(true);
	// 使用stitch函数进行拼接
	Mat pano;
	Stitcher::Status status = stitcher.stitch(imgs, pano);
	
	if (status != Stitcher::OK)
	{
		cout << "Can't stitch images, error code = " << int(status) << endl;
		 QMessageBox::warning(nullptr, "jing gao", QString("Can't stitch images, error code : %1").arg( int(status) ));
	}
	else
	{
		imwrite("D:/Test/QT/qt04/quanjing/quanjing/555.jpg", pano);
		Mat pano2 = pano.clone();
		// 显示源图像,和结果图像
		imshow("全景图像1", pano2);

	}
}

quanjing::~quanjing()
{

}

准备了四张图像


2 、3 、4三张 进行stitch,结果如下:


3 、4、5三张进行stitch,结果如下:


2、3、4、5 四张一起进行stitch,结果如下:


经过测试,有时候图像序列中某两个连续的出现stitch,错误图像以后的图像就不会再融合了


感觉  opencv的stitch进行图像融合,不太稳定,有时候说不出来为什么两个图像不能融合,肉眼都可以判断出是可以融合的


FR:徐海涛(hunkxu)


http://www.kler.cn/a/591511.html

相关文章:

  • 基于51单片机的手机拨号键盘模拟proteus仿真
  • MySQL实现全量同步和增量同步到SQL Server或其他关系型库
  • LeetCode203移除链表
  • Android ARouter的详细使用指南
  • 【数据库】如何用索引优化查询性能
  • Linux一键安装node.js【脚本】
  • Python学习- 数据结构类型
  • 软考中级-数据库-5.1 计算机网络概述与网络硬件基础
  • springCloud使用webSocket(接收端)
  • 基于PMU的14节点、30节点电力系统状态估计MATLAB程序
  • 【数据分享】2000—2024年我国省市县三级逐年归一化植被指数(NDVI)数据(年最大值/Shp/Excel格式)
  • Python使用总结之Flask构建文件服务器,通过网络地址访问本地文件
  • 学术论文pdf图片中的公式如何自动识别为word
  • 提升AI性能的秘密武器:量化、蒸馏与剪枝全面解析
  • Python----计算机视觉处理(Opencv:形态学变换)
  • 深度学习视觉BEV 3D目标检测算法综述
  • oracle基础知识之表的集合运算
  • 鸿蒙HarmonyOS Next练手学习项目购物车功能,联动全选反选、数量总计
  • MySQL -- 复合查询
  • Python爬虫-爬取汽车之家燃油车月销量榜数据