700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C++和Opencv4.5 实现全景图像拼接

C++和Opencv4.5 实现全景图像拼接

时间:2021-04-06 15:52:42

相关推荐

C++和Opencv4.5 实现全景图像拼接

前言

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

Stitcher原理

Stitcher类程序流程:

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

环境

OpenCV:4.5.0

VS: 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的应用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。