您的位置:首页 > 运维架构

opencv图像拼接

2016-05-16 12:02 465 查看
网上已经很多相关的代码了,主要就是调用Stitcher::Status status = sti.stitch(vImg, rImg);这里主要是记录一下自己的一个实现。



图片1



图片2



图片3

这里是代码:

#include < stdio.h >
#include < opencv2\opencv.hpp >
#include < opencv2\stitching\stitcher.hpp >

using namespace cv;
using namespace std;

int main(){
vector<Mat>vImg;

Mat rImg;
vImg.push_back(imread("sanL.png"));
vImg.push_back(imread("sanM.png"));
vImg.push_back(imread("sanR.png"));

Stitcher sti = Stitcher::createDefault();
unsigned long AAtime = 0, BBtime = 0;
AAtime = getTickCount();
Stitcher::Status status = sti.stitch(vImg, rImg);
BBtime = getTickCount();
printf("%.21f sec \n", (BBtime - AAtime) / getTickFrequency());
if (Stitcher::OK == status)
imshow("Stitching Result", rImg);
else cout << "FAIL\n";
waitKey(0);
}


拼接结果:



总结:

这方法实现非常简单,效果也挺好,缺点是速度很慢,如果有实时性的要求,建议使用GPU进行计算。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: