[オリジナル]opencvで画像のつなぎ合わせを実現し、パノラマを作成する

6390 ワード

転載は以下のことを明記してください.
http://www.cnblogs.com/ausk/p/3332255.html
 
 
Opencv 2.4.6のライブラリ関数を呼び出して、画像のつなぎ合わせ機能を実現して、馬鹿式のつなぎ合わせ、あまり専門知識を必要としません.の
 
 1 #include "stdafx.h"
 2 #include <iostream>
 3 #include <opencv2/core/core.hpp>
 4 #include <opencv2/highgui/highgui.hpp>
 5 #include <opencv2/imgproc/imgproc.hpp>
 6 #include <opencv2/stitching/stitcher.hpp>
 7 using namespace std;
 8 using namespace cv;
 9 bool try_use_gpu = false;
10 vector<Mat> imgs;
11 string result_name = "result.jpg";
12 int _tmain(int argc, char * argv[])
13 {
14     Mat img1 = imread("1.jpg");
15     Mat img2 = imread("2.jpg");
16     Mat img3 = imread("3.jpg");    
17     Mat img4 = imread("4.jpg");    
18     if (img1.empty() || img2.empty())
19     {
20         cout << "Can't read image"<< endl;
21         return -1;
22     }
23     imgs.push_back(img1);
24     imgs.push_back(img2);
25     imgs.push_back(img3);
26     imgs.push_back(img4);
27     Stitcher stitcher = Stitcher::createDefault(try_use_gpu);
28     //   stitch      
29     Mat pano;
30     Stitcher::Status status = stitcher.stitch(imgs, pano);
31     imwrite(result_name, pano);
32     Mat pano2=pano.clone();
33     //
34     imshow("    ", pano);
35     if(waitKey()==27)
36         return 0;
37 }

 
[原创]opencv实现图像拼接,制做全景图_第1张图片