opencv2实现10张图像上下左右拼接融合
本文实例为大家分享了opencv2实现多张图像上下左右拼接融合的具体代码,供大家参考,具体内容如下
在前面的“opencv2两张图像拼接融合_基于SURF特征提取”博文中,实现了两张左右图像的拼接融合,后来我也实现了多张图像的拼接融合。但是opencv2自带一种函数,直接就实现了图像的上下左右拼接。具体程序如下:
#include#include #include #include"opencv2/highgui/highgui.hpp" #include"opencv2/stitching/stitcher.hpp" usingnamespacestd; usingnamespacecv; booltry_use_gpu=false; vector imgs; stringresult_name="result.jpg"; intmain(intargc,char*argv[]) //int_tmain(intargc,_TCHAR*argv[]) { //读取图像 /*Matimg1=imread("img1.jpg"); Matimg2=imread("img2.jpg"); Matimg3=imread("img3.jpg");*/ Matimage11=imread("1.jpg"); Matimage22=imread("2.jpg"); Matimage33=imread("3.jpg"); Matimage44=imread("4.jpg"); Matimage55=imread("5.jpg"); Matimage66=imread("6.jpg"); Matimage77=imread("7.jpg"); Matimage88=imread("8.jpg"); Matimage99=imread("9.jpg"); Matimage1010=imread("10.jpg"); if(!image11.data||!image22.data||!image33.data||!image44.data||!image55.data ||!image66.data||!image77.data||!image88.data||!image99.data||!image1010.data ) return0; 因为老师给的图像太大,先处理下。处理后的图像存放在imagei中。 Matimage1; Matimage2; Matimage3; Matimage4; Matimage5; Matimage6; Matimage7; Matimage8; Matimage9; Matimage10; 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函数生成默认的参数 Stitcherstitcher=Stitcher::createDefault(try_use_gpu); //使用stitch函数进行拼接 Matpano; Stitcher::Statusstatus=stitcher.stitch(imgs,pano); //保存结果图像 imwrite(result_name,pano); //显示源图像,和结果图像 imshow("全景图像",pano); waitKey(0); return0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。