CV進(jìn)階操作【9】——特征檢測與匹配

編程環(huán)境:

VS + OpenCV + C++
完整代碼已經(jīng)更新至GitHub,歡迎fork~GitHub鏈接


聲明:創(chuàng)作不易潜索,未經(jīng)授權(quán)不得復(fù)制轉(zhuǎn)載
statement:No reprinting without authorization


內(nèi)容:

? 了解OpenCV中實現(xiàn)的SIFT, SURF, ORB等特征檢測器的用法,并進(jìn)行實驗梢睛。將檢測到的特征點(diǎn)用不同大小的圓表示脾还,比較不同方法的效率伴箩、效果等。
? 了解OpenCV的特征匹配方法鄙漏,并進(jìn)行實驗嗤谚。

一棺蛛、opencv特征檢測和匹配的通用步驟及Code

//步驟一:讀取圖片并將圖片灰度化 
//code:
Mat src1, src2;
src1 = imread("圖片路徑");
src2 = imread("圖片路徑");
Mat graySrc1, graySrc2;
cvtColor(src1, graySrc1, CV_BGR2GRAY);
cvtColor(src2, graySrc2, CV_BGR2GRAY);

//步驟二:提取特征并描述 
//code:
vector<KeyPoint> keys1;  
vector<KeyPoint> keys2;
Ptr<xfeatures2d::SURF> detector = xfeatures2d::SURF::create(1500);

Mat descriptorMat1, descriptorMat2;
detector->detectAndCompute(src1, Mat(), keys1, descriptorMat1);
detector->detectAndCompute(src2, Mat(), keys2, descriptorMat2);

//步驟三:特征點(diǎn)匹配 
//code:
    cv::BFMatcher matcher;
    std::vector<DMatch> matches;
    matcher.match(descriptorMat1, descriptorMat2, matches);

//步驟四:獲取優(yōu)秀匹配點(diǎn) 
//code:
double max_dist = 0; double min_dist = 100;
for (int i=0; i<descriptorMat1.rows; i++)
{
    double dist = matches[i].distance;
    if (dist < min_dist) min_dist = dist;
    if (dist > max_dist) max_dist = dist;
}
cout<<"-- Max dist :"<< max_dist<<endl;
cout<<"-- Min dist :"<< min_dist<<endl;

vector< DMatch > good_matches;
for (int i=0; i<descriptorMat1.rows; i++)
{
    if (matches[i].distance < 0.2*max_dist)
    {
        good_matches.push_back(matches[i]);
    }
}

//步驟五:繪制特征匹配圖 
//code:
Mat img_matches;
drawMatches(src1, keys1, src2, keys2,good_matches, img_matches, 
            Scalar::all(-1), Scalar::all(-1),vector<char>(), 
            DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);

注:需要添加#include<opencv2/xfeatures2d.hpp>,#include<opencv2/features2d.hpp>巩步,其中SIFT和SURF在xfeatures2d中旁赊,ORB在feature2d中。

二椅野、測試結(jié)果及對比展示

1彤恶、原圖1(340*256)的特征檢測結(jié)果:(按ORB->SURF->SIFT順序)
image.png
image.png

image.png
2、原圖2(320*426)的特征檢測結(jié)果:(按ORB->SURF->SIFT順序)
image.png
image.png

image.png
3鳄橘、源圖1和2的特征匹配結(jié)果(篩選后):(按ORB->SURF->SIFT順序)

image.png

對ORB的結(jié)果不進(jìn)行matchs的篩選結(jié)果如下:
image.png

image.png

image.png

4声离、運(yùn)行時間如下:
1.png

1.png
6、總結(jié)以上瘫怜,從運(yùn)行效率和效果上進(jìn)行排序术徊,可以發(fā)現(xiàn)SIFT > SURF > ORB,其中SIFT的方法最好。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲸湃,一起剝皮案震驚了整個濱河市赠涮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌暗挑,老刑警劉巖笋除,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異炸裆,居然都是意外死亡垃它,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門烹看,熙熙樓的掌柜王于貴愁眉苦臉地迎上來国拇,“玉大人,你說我怎么就攤上這事惯殊〗戳撸” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵土思,是天一觀的道長务热。 經(jīng)常有香客問我,道長己儒,這世上最難降的妖魔是什么崎岂? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮址愿,結(jié)果婚禮上该镣,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好损合,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布省艳。 她就那樣靜靜地躺著,像睡著了一般嫁审。 火紅的嫁衣襯著肌膚如雪跋炕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天律适,我揣著相機(jī)與錄音辐烂,去河邊找鬼。 笑死捂贿,一個胖子當(dāng)著我的面吹牛纠修,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厂僧,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼扣草,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了颜屠?” 一聲冷哼從身側(cè)響起辰妙,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甫窟,沒想到半個月后密浑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粗井,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年尔破,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片背传。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡呆瞻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出径玖,到底是詐尸還是另有隱情,我是刑警寧澤颤介,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布梳星,位于F島的核電站,受9級特大地震影響滚朵,放射性物質(zhì)發(fā)生泄漏冤灾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一辕近、第九天 我趴在偏房一處隱蔽的房頂上張望韵吨。 院中可真熱鬧,春花似錦移宅、人聲如沸归粉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糠悼。三九已至届榄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間倔喂,已是汗流浹背铝条。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留席噩,地道東北人班缰。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像悼枢,于是被迫代替她去往敵國和親埠忘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容