1. 程式人生 > >opencv-基於ORB特徵點匹配

opencv-基於ORB特徵點匹配

#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <opencv2/features2d/features2d.hpp>
using namespace cv;
// 計算影象的SIFT特徵及匹配
cv::Mat cacORBFeatureAndCompare(cv::Mat srcImage1,
	cv::Mat srcImage2)
{ 
	CV_Assert(srcImage1.data != NULL && srcImage2.data != NULL);
	// 關鍵點檢測
	std::vector<KeyPoint> keyPoint1, keyPoint2;
	ORB orb;
	orb.detect(srcImage1, keyPoint1);
	orb.detect(srcImage2, keyPoint2);
	// 計算特徵向量
	Mat descriptorMat1, descriptorMat2;
	orb.compute(srcImage1, keyPoint1, descriptorMat1);
	orb.compute(srcImage2, keyPoint2, descriptorMat2);
	// 特徵匹配
	BFMatcher matcher(NORM_HAMMING);
	std::vector<DMatch> mathces;
	matcher.match(descriptorMat1, descriptorMat2, mathces);
	// 繪製匹配點集
	Mat matchMat;
	drawMatches(srcImage1, keyPoint1,
		srcImage2, keyPoint2, mathces, matchMat);
	//cv::imshow("Mathces", matchMat);
	return matchMat;
}
int main ()
{
	// 讀取源影象及待匹配影象
	cv::Mat srcImage1 = 
		cv::imread("hand1.jpg", 1); 
	if (srcImage1.empty()) 
		return -1;
	cv::Mat srcImage2 = 
		cv::imread("hand3.jpg", 1); 
	if (srcImage2.empty()) 
		return -1;
	cv::Mat  matchMat = cacORBFeatureAndCompare(srcImage1, srcImage2);
	cv::imshow("matchMat", matchMat);
	cv::waitKey(0);
	return 0;
}

http://lib.csdn.net/base/opencv

相關推薦

opencv-基於ORB特徵匹配

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <o

雙目三維重建—基於特徵匹配的被動式三維重建(OpenCV+OpenGL)

首先我們先來看一下三維重建的效果圖: 本博文參考了該博主的的核心程式碼,並針對該博主博文中宣告的一些BUG進行了修正: 本文主要從如何配置環境方面進行介紹,後期會更新基於攝像頭實際抓圖的三維重建 相機抓取的相片原圖: 首先是本文的執行環境:Wi

opencv上gpu版surf特徵orb特徵提取及匹配例項

一、前言 本文主要實現了使用opencv裡的gpu版surf特徵檢測器和gpu版orb檢測器,分別對圖片進行特徵點提取及匹配,並對尋獲的特徵點進行了距離篩選,將匹配較為好的特徵點進行展示 二、實現程式碼 我不生產程式碼,我只是程式碼的搬運工和修改工 //main.cpp/

OpenCv-C++-ORB特徵檢測與匹配

影象的特徵點可以簡單的理解為影象中比較顯著顯著的點,如輪廓點,較暗區域中的亮點,較亮區域中的暗點等。 ORB的全稱是ORiented Brief,採用FAST(features from accelerated segment test)演算法來檢測特徵點。 與Brisk,AKAZE

OpenCV學習筆記】三十七、特徵檢測與匹配(二)——SIFT特徵匹配

特徵檢測與匹配(二)——SIFT特徵點匹配 1.SIFT特徵點提取 2.繪製特徵點 3.特徵點描述符(特徵向量)提取 4.使用暴力匹配器進行暴力匹配 5.對匹配結果進行篩選(依據DMatch結構體中的float型別變數distance進行篩選) 6.繪製匹配結果 先上ppt

python opencv入門 特徵匹配+單應性查詢目標(39)

內容來自OpenCV-Python Tutorials 自己翻譯整理 目標: 我們將結合特徵點匹配和尋找單應性的方法,使用calib3d模組在複雜的影象當中尋找已知目標。 基礎: 這裡簡單說一下什麼事單應變換,如果有說的不對,還請各位看官斧正。 一

OpenCV】SURF演算法之視訊影象實時特徵匹配

OpenCV原始碼中有關於SURF演算法的靜態影象特徵點匹配,就將其改進為動態視訊影象實時獲取特徵點並將其與目標影象進行特徵點匹配。 考慮到如果沒有獲取到連續幀影象,即有黑色影象被攝像頭捕捉到,此時FLANN演算法則失效,因為FLANN演算法是無法處理黑色影象的,它必須能採

特徵匹配——ORB演算法介紹

《ORB: an efficient alternative to SIFT or SURF》是Rublee等人在2011年的ICCV上發表的一篇有關於特徵點提取和匹配的論文,這篇論文介紹的方法跳出了SIFT和SURF演算法的專利框架,同時以極快的執行速度贏得了

sift、surf、orb 特徵提取及最優特徵匹配

目錄 sift sift特徵簡介 sift特徵提取步驟 surf surf特徵簡介 surf特徵提取步驟 orb

OpenCV開發筆記(六十五):紅胖子8分鐘帶你深入瞭解ORB特徵(圖文並茂+淺顯易懂+程式原始碼)

若該文為原創文章,未經允許不得轉載原博主部落格地址:https://blog.csdn.net/qq21497936原博主部落格導航:https://blog.csdn.net/qq21497936/article/details/102478062本文章部落格地址:https://blog.csdn.ne

ORB特徵原理(淺顯版)

轉自https://www.jianshu.com/p/9ee6b2145eaa 緒論 假如我有2張美女圖片,我想確認這2張圖片中美女是否是同一個人。這太簡單了,以我專研島國動作片錘鍊出來的火眼金睛只需輕輕掃過2張圖片就可以得出結論。但是,如果我想讓計算機來完成這個功能就困難重重了:再性感的

opencv提取surf特徵出現的錯誤

opencv實現surf特徵的提取,本來是一個很簡單的程式碼,結果我執行時卻出現了各種錯誤,下面來談談我出現的錯誤及問題的解決過程。 首先,我把提取surf特徵的過程整合成了一個函式,我單獨建立一個工程讀取兩張圖片,然後呼叫這個surf提取的函式時時無論是debug還是re

Sift特徵匹配過程

由步驟一我們已經獲得了圖片的特徵點向量集合。現在來看看特徵點匹配,特徵點匹配的一個應用就是物體的識別,比如說我有2張圖片A和B,圖片的內容相同,只是圖片的大小尺寸不同。假設A圖片尺寸比較大,且我們已經採用sift演算法對圖片A和B都進行了檢測,獲得了它們的特徵點集合,

opencv3.1 ORB特徵提取

#include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hp

OpenCVORB特徵提取演算法

看到OpenCV2.3.1裡面ORB特徵提取演算法也在裡面了,套用給的SURF特徵例子程式改為ORB特徵一直提示錯誤,型別不匹配神馬的,由於沒有找到示例程式,只能自己找答案。(ORB特徵論文:ORB: an efficient alternative to SIFT or S

opencv_關於特徵匹配的資料結構

DMatch struct CV_EXPORTS_W_SIMPLE DMatch { CV_WRAP DMatch() : queryIdx(-1), trainIdx(-1), imgIdx(-1), distance(FLT_MAX) {}//

opencv3.2 SURF實現特徵匹配

opencv3.2中SurfFeatureDetector、SurfDescriptorExtractor、BruteForceMatcher這三個的使用方法已經和原先2.4版本前不一樣了。 使用方法示例如下: Ptr<SURF> dete

Flann特徵匹配簡述(Lowe's algorithm)

/***好記性不如爛筆頭,記下來便於以後複習***/              特徵匹配的結果會得到兩個特徵集合的對應關係列表。第一組特徵集被稱為訓練集(train),第二組被稱為查詢集(query)。Flann 在呼叫匹

ORB特徵檢測

Oriented FAST and Rotated BRIEF 這篇文章我們將介紹一種新的具有區域性不變性的特徵 —— ORB特徵,從它的名字中可以看出它是對FAST特徵點與BREIF特徵描述子的一種結合與改進,這個演算法是由Ethan Rublee,Vincent Rabaud,Kurt Kono

毫秒級opencv的人臉特徵的檢測

這裡用到了大名鼎鼎於仕琪老師的開源庫,下面附上於老師的專案下載連結 https://github.com/ShiqiYu/libfacedetection 然後就是環境的配置,具體見連結 #in