opencv2實現(xiàn)10張圖像上下左右拼接融合
更新時間:2020年03月05日 17:28:17 作者:米姒翰
這篇文章主要為大家詳細介紹了opencv2實現(xiàn)10張圖像上下左右拼接融合,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了opencv2實現(xiàn)多張圖像上下左右拼接融合的具體代碼,供大家參考,具體內(nèi)容如下
在前面的“opencv2兩張圖像拼接融合_基于SURF特征提取”博文中,實現(xiàn)了兩張左右圖像的拼接融合,后來我也實現(xiàn)了多張圖像的拼接融合。但是opencv2自帶一種函數(shù),直接就實現(xiàn)了圖像的上下左右拼接。具體程序如下:
#include <iostream>
#include<vector>
#include <fstream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/stitching/stitcher.hpp"
using namespace std;
using namespace cv;
bool try_use_gpu = false;
vector<Mat> imgs;
string result_name = "result.jpg";
int main(int argc, char* argv[])
//int _tmain(int argc, _TCHAR* argv[])
{
// 讀取圖像
/*Mat img1 = imread("img1.jpg");
Mat img2 = imread("img2.jpg");
Mat img3 = imread("img3.jpg");*/
Mat image11= imread("1.jpg");
Mat image22= imread("2.jpg");
Mat image33= imread("3.jpg");
Mat image44= imread("4.jpg");
Mat image55= imread("5.jpg");
Mat image66= imread("6.jpg");
Mat image77= imread("7.jpg");
Mat image88= imread("8.jpg");
Mat image99= imread("9.jpg");
Mat image1010= imread("10.jpg");
if (!image11.data || !image22.data|| !image33.data|| !image44.data|| !image55.data
|| !image66.data|| !image77.data|| !image88.data|| !image99.data|| !image1010.data
)
return 0;
因為老師給的圖像太大,先處理下。處理后的圖像存放在imagei中。
Mat image1;
Mat image2;
Mat image3;
Mat image4;
Mat image5;
Mat image6;
Mat image7;
Mat image8;
Mat image9;
Mat image10;
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);
// 調(diào)用createDefault函數(shù)生成默認的參數(shù)
Stitcher stitcher = Stitcher::createDefault(try_use_gpu);
// 使用stitch函數(shù)進行拼接
Mat pano;
Stitcher::Status status = stitcher.stitch(imgs, pano);
// 保存結果圖像
imwrite(result_name, pano);
// 顯示源圖像,和結果圖像
imshow("全景圖像", pano);
waitKey(0);
return 0;
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Matlab實現(xiàn)數(shù)據(jù)的動態(tài)顯示方法
這篇文章主要為大家詳細介紹了Matlab使用Plot函數(shù)實現(xiàn)數(shù)據(jù)動態(tài)顯示方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
Matlab中圖像數(shù)字水印算法的原理與實現(xiàn)詳解
數(shù)字水印技術作為信息隱藏技術的一個重要分支,是將信息(水印)隱藏于數(shù)字圖像、視頻、音頻及文本文檔等數(shù)字媒體中,從而實現(xiàn)隱秘傳輸、存儲、標注、身份識別、版權保護和防篡改等目的。本文就來講講圖像數(shù)字水印算法的原理與實現(xiàn),感興趣的可以了解一下2023-04-04

