欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenCV實現(xiàn)拼接圖像的簡單方法

 更新時間:2019年05月20日 16:58:00   作者:iteye_18380  
這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)拼接圖像的簡單方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了OpenCV實現(xiàn)拼接圖像的具體方法,供大家參考,具體內(nèi)容如下

用iphone拍攝的兩幅圖像:

 

 

 拼接后的圖像:

 

相關(guān)代碼如下:

//讀取圖像
Mat leftImg=imread("left.jpg");
Mat rightImg=imread("right.jpg");
if(leftImg.data==NULL||rightImg.data==NULL)
 return;
 
//轉(zhuǎn)化成灰度圖
Mat leftGray;
Mat rightGray;
cvtColor(leftImg,leftGray,CV_BGR2GRAY);
cvtColor(rightImg,rightGray,CV_BGR2GRAY);
 
//獲取兩幅圖像的共同特征點
int minHessian=400;
SurfFeatureDetector detector(minHessian);
vector<KeyPoint> leftKeyPoints,rightKeyPoints;
detector.detect(leftGray,leftKeyPoints);
detector.detect(rightGray,rightKeyPoints);
SurfDescriptorExtractor extractor;
Mat leftDescriptor,rightDescriptor;
extractor.compute(leftGray,leftKeyPoints,leftDescriptor);
extractor.compute(rightGray,rightKeyPoints,rightDescriptor);
FlannBasedMatcher matcher;
vector<DMatch> matches;
matcher.match(leftDescriptor,rightDescriptor,matches); 
int matchCount=leftDescriptor.rows;
if(matchCount>15)
{
 matchCount=15;
 sort(matches.begin(),matches.begin()+leftDescriptor.rows,DistanceLessThan);
} 
vector<Point2f> leftPoints;
vector<Point2f> rightPoints;
for(int i=0; i<matchCount; i++)
{
 leftPoints.push_back(leftKeyPoints[matches[i].queryIdx].pt);
 rightPoints.push_back(rightKeyPoints[matches[i].trainIdx].pt);
}
 
//獲取左邊圖像到右邊圖像的投影映射關(guān)系
Mat homo=findHomography(leftPoints,rightPoints);
Mat shftMat=(Mat_<double>(3,3)<<1.0,0,leftImg.cols, 0,1.0,0, 0,0,1.0);
 
//拼接圖像
Mat tiledImg;
warpPerspective(leftImg,tiledImg,shftMat*homo,Size(leftImg.cols+rightImg.cols,rightImg.rows));
rightImg.copyTo(Mat(tiledImg,Rect(leftImg.cols,0,rightImg.cols,rightImg.rows)));
 
//保存圖像
imwrite("tiled.jpg",tiledImg);
 
//顯示拼接的圖像
imshow("tiled image",tiledImg);
waitKey(0);

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言 遞歸實現(xiàn)排雷游戲

    C語言 遞歸實現(xiàn)排雷游戲

    掃雷是電腦上很經(jīng)典很經(jīng)典的傳統(tǒng)老游戲,從小編第一次摸到計算機開始就玩過掃雷,雖然當時并不理解玩法原理,但終是第一次玩電腦游戲,下面來從掃雷的前世今生講起
    2021-11-11
  • dword ptr指令詳細解析

    dword ptr指令詳細解析

    8086CPU的指令,可以處理兩種尺寸的數(shù)據(jù),byte和word。所以在機器指令中要指明,指令進行的是字操作還是字節(jié)操作
    2013-09-09
  • C++實現(xiàn)算法兩個數(shù)字相加詳解

    C++實現(xiàn)算法兩個數(shù)字相加詳解

    這篇文章主要介紹了C++實現(xiàn)算法兩個數(shù)字相加詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言拓展實現(xiàn)Lua sleep函數(shù)

    C語言拓展實現(xiàn)Lua sleep函數(shù)

    這篇文章主要介紹了C語言拓展實現(xiàn)Lua sleep函數(shù),本文使用C語言寫出sleep函數(shù),編譯后在Lua中調(diào)用,需要的朋友可以參考下
    2015-04-04
  • C++對象排序的比較你了解嗎

    C++對象排序的比較你了解嗎

    這篇文章主要為大家詳細介紹了C++對象排序的比較,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++實現(xiàn)翻轉(zhuǎn)單詞順序

    C++實現(xiàn)翻轉(zhuǎn)單詞順序

    這篇文章給大家匯總介紹了C++實現(xiàn)翻轉(zhuǎn)單詞順序的三種方法,都非常的簡單,需要的朋友可以參考下
    2016-07-07
  • C++?常量成員函數(shù)學習筆記

    C++?常量成員函數(shù)學習筆記

    這篇文章主要為大家介紹了C++?常量成員函數(shù)學習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 基于Qt實現(xiàn)日志打印系統(tǒng)

    基于Qt實現(xiàn)日志打印系統(tǒng)

    這篇文章主要為大家詳細介紹了如何利用Qt開發(fā)一個日志打印系統(tǒng),可以實現(xiàn)打印日志按日期、大小保存,過期刪除,窗口實時顯示日志,網(wǎng)絡傳輸日志遠程調(diào)試,需要的可以參考下
    2023-12-12
  • C++命名空間namespace的介紹與使用

    C++命名空間namespace的介紹與使用

    今天小編就為大家分享一篇關(guān)于C++命名空間namespace的介紹與使用,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C++詳細講解圖的拓撲排序

    C++詳細講解圖的拓撲排序

    拓撲排序(Topological?Sorting)若一個由圖中所有點構(gòu)成的序列?A?滿足:對于圖中的每條邊?(x,y),x?在?A?中都出現(xiàn)在?y?之前,則稱?A?是該圖的一個拓撲序列
    2022-05-05

最新評論