使用OPENCV自帶的sift提取特徵

2021-07-06 10:40:57 字數 1065 閱讀 8705

最近在使用opencv中自帶的sift特徵提取器,學藝不精導致很簡單的東西搞了好幾天沒出來,今天解決了特意紀錄下;

// opencv_empty_proj.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include #include #include#include#include#include using namespace std;

using namespace cv;

int _tmain(int argc, _tchar* argv)

//顯示影象

imshow("image before", img);

//sift特徵檢測

siftfeaturedetector siftdtc;

vectorkp;

siftdtc.detect(img, kp);//到這裡其實只是提取到了特徵點的具體位置和角度,其儲存在kp中

mat outimg;

drawkeypoints(img, kp, outimg);

imshow("image keypoints", outimg);//之前看別的人部落格,到這就可以看到特徵點畫在圖上了,一直以為那些點就是自己要用的那個,其實真正要用的在下邊

siftdescriptorextractor extractor;//特徵提取器

mat descriptor; //這個描述符才是做實驗要用的特徵

extractor.compute(img, kp, descriptor);

ofstream file("./img.feature");//提取到的特徵儲存在這個檔案中,128維,整數做實驗以後再歸一化一下

file << endl << descriptor << endl;

//此函式等待按鍵,按鍵盤任意鍵就返回

waitkey();

return 0;

}

不過還有乙個問題,這個**在vs的debug模式下有錯誤,release模式沒有錯誤。應該是我opencv配置的依賴庫有問題,知道的同學可以給我指點一下。謝謝

使用OPENCV自帶的sift提取特徵

原文 最近在使用opencv中自帶的sift特徵提取器,學藝不精導致很簡單的東西搞了好幾天沒出來,今天解決了特意紀錄下 opencv empty proj.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include inclu...

opencv2 4 sift演算法的使用

與opencv2.3.1版本的sift演算法的程式設計方法有所不同,貌似opencv2.4版本之後將sift surf演算法移到了nonfree區。所以,需要包換的標頭檔案 include include opencv nonfree249d.lib和opencv features2d249d.li...

sift的opencv簡易實現

實驗室的mac下xcode scale invariant feature transform sift 特點 穩定 獨特 多量 高速 可擴充套件 步驟 1.多尺度空間極點檢測 2.關鍵點 keypoints 定位 3.關鍵點的方向確定 4.描述子生成 細節 高斯卷積為多尺度空間唯一線性核 l x,...