雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

Opencv使用Stitcher類圖像拼接生成全景圖像

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

Opencv中自帶的Stitcher類可以實(shí)現(xiàn)全景圖像,效果不錯(cuò)。下邊的例子是Opencv Samples中的stitching.cpp的簡(jiǎn)化,源文件可以在這個(gè)路徑里找到:
\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; //保存拼接的原始圖像向量 
 
//導(dǎo)入所有原始拼接圖像函數(shù) 
void parseCmdArgs(int argc, char** argv); 
 
int main(int argc, char* argv[]) 
{ 
  //導(dǎo)入拼接圖像 
  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; 
} 
 
//導(dǎo)入所有原始拼接圖像函數(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); 
  } 
} 

圖1:


圖2:


圖3:


圖4:


圖5:


5個(gè)圖片的拍攝角度合起來(lái)在180°左右,沒(méi)有經(jīng)過(guò)壓縮的,下載下來(lái)可以直接測(cè)試使用,傳入順序隨意,Stitcher會(huì)自動(dòng)排列。全景拼接效果很贊:


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:C語(yǔ)言貪吃蛇經(jīng)典小游戲

欄    目:C語(yǔ)言

下一篇:基于OpenCv的運(yùn)動(dòng)物體檢測(cè)算法

本文標(biāo)題:Opencv使用Stitcher類圖像拼接生成全景圖像

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/925.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有