溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Opencv使用Stitcher類拼接圖像

發(fā)布時間:2021-03-30 15:30:01 來源:億速云 閱讀:341 作者:Leah 欄目:編程語言

這篇文章給大家介紹怎么在Opencv使用Stitcher類拼接圖像,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Opencv中自帶的Stitcher類可以實現(xiàn)全景圖像,效果不錯。下邊的例子是Opencv Samples中的stitching.cpp的簡化,源文件可以在這個路徑里找到:
\opencv\sources\samples\cpp\stitching.cpp

#include <fstream> 
#include "opencv2/highgui/highgui.hpp" 
#include "opencv2/stitching/stitcher.hpp" 
#include <iostream> 
 
using namespace cv; 
using namespace std; 
 
vector<Mat> imgs; //保存拼接的原始圖像向量 
 
//導入所有原始拼接圖像函數(shù) 
void parseCmdArgs(int argc, char** argv); 
 
int main(int argc, char* argv[]) 
{ 
  //導入拼接圖像 
  parseCmdArgs(argc, argv);   
  Mat pano; 
  Stitcher stitcher = Stitcher::createDefault(false); 
  Stitcher::Status status = stitcher.stitch(imgs, pano);//拼接 
  if (status != Stitcher::OK) //判斷拼接是否成功 
  { 
    cout << "Can't stitch images, error code = " << int(status) << endl; 
    return -1; 
  } 
  namedWindow("全景拼接",0); 
  imshow("全景拼接",pano); 
  imwrite("D:\\全景拼接.jpg",pano); 
  waitKey();   
  return 0; 
} 
 
//導入所有原始拼接圖像函數(shù) 
void parseCmdArgs(int argc, char** argv) 
{ 
  for(int i=1;i<argc;i++) 
  { 
    Mat img = imread(argv[i]); 
    if (img.empty()) 
    { 
      cout << "Can't read image '" << argv[i] << "'\n"; 
    } 
    imgs.push_back(img); 
  } 
}

關(guān)于怎么在Opencv使用Stitcher類拼接圖像就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI