① 如何本地安裝SIFT
SIFT的實現有很多版本,具體方式都是那麼幾個,找個好用的不太容易,因為對於代碼不熟練者各種版本用起來都有點水土不服,需要調整調整才行。本人是在VS2010下使用的Rob Hess的源碼。
一、前提
安裝Opencv,詳見:VS2010+Opencv-2.4.0的配置攻略(該版本SIFT是基於Opencv的)。
下載SIFT源碼,見Rob Hess的主頁(別告訴我不懂英文不知道下載鏈接在哪,下那個Windows VC++的版本 sift-latest_win.zip)。
二、測試
1、解壓sift源碼,發現有如下文件:
5、C語法設定:分別打開imgfeatures.h和sift.h,讓所有函數包含在
#ifdef __cplusplusextern"C"{#endif
和
#ifdef __cplusplus }#endif
之間。例如:
View Code
... #ifdef __cplusplusextern"C"{#endif...externintsift_features( IplImage* img,structfeature**feat ); ...externint_sift_features( IplImage* img,structfeature** feat,intintvls,doublesigma,doublecontr_thr,intcurv_thr,intimg_dbl,intdescr_width,intdescr_hist_bins ); #ifdef __cplusplus }#endif#endif
PS:我只是用了_sift_features(...)等幾個函數,所以只加了兩個頭文件的C語法聲明,如果是用了其他的頭文件,均需要添加。
6、綜上,你應該可以直接使用sift相關函數了,參照siftfeat.c中的寫法,用用_sift_features(...)試試!
實際上如果只需要使用SIFT特徵提取的函數,前面幾步只需要復制imgfeatures.c imgfeatures.h sift.c sift.h utils.c utils.h這6個文件就夠了
② 圖像配准技術是怎麼實現圖像的特徵匹配的
SIFT圖像處理代碼,必須和三個文件一起下載使用:基於SIFT特徵的圖像配准(Matlab源代碼)、基於SIFT特徵的圖像配准(模擬圖片)
使用SIFT特徵描述對於部分物體遮蔽的偵測率也相當高,甚至只需要3個以上的SIFT物體特徵就足以計算出位置與方位。在現今的電腦硬體速度下和小型的特徵資料庫條件下,辨識速度可接近即時運算。SIFT特徵的信息量大,適合在海量資料庫中快速准確匹配。
③ C++中基於opencv的sift演算法中用高斯金字塔對圖片進行處理,該怎麼把經高斯金字塔處理的圖片每一張都顯示
buildGaussianPyramid 函數的輸出 pyr 就是高斯金字塔了 ,直接imshow(pyr[i]),應該就可以了
④ sift 綆楁硶matlab浠g爜瑙f瀽錛屾眰澶ц櫨鎸囧 綰㈣壊鏂規咺1涓轟互鍥劇墖錛岀敤I1鍑忓幓min(I1(:))鏄鍋氫粈涔堢敤鐨勶紵錛燂紵
褰掍竴鍖栵紝鎶婂浘鍍忕殑鍍忕礌鍊煎綊涓鍖栧埌[0 1]鑼冨洿閲屻傝繖鏍峰仛鍙浠ュ拷鐣ユ帀鍥懼儚浜搴︾殑鍙樺寲銆