最近在使用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,...