opencv提取surf特徵點出現的錯誤

2021-09-07 10:48:52 字數 1160 閱讀 4712

opencv實現surf特徵的提取。本來是乙個非常easy的**,結果我執行時卻出現了各種錯誤,以下來談談我出現的錯誤及問題的解決過程。

首先,我把提取surf特徵的過程整合成了乙個函式,我單獨建立乙個project讀取兩張,然後呼叫這個surf提取的函式時時不管是debug還是release模式下都是沒有問題的。當我把這個函式加入到我如今已有的project**裡面的時候出現了各種奇葩錯誤。以下是我surf特徵提取的函式

void surfdetect(iplimage *image1,iplimage *image2)

cout<

for(int i=0; i

surf特徵提取的整個**都在上面了。可當我把這個函式在我已有的project中呼叫的時候,出現了一下錯誤

std::vectormatches;//匹配結果

std::vectorgoodmatches;

從函式中拿出來,作為全域性變數,問題盡然攻克了,事實上我都沒想明確這是什麼原因。

vector裡面的記憶體不是不須要手動釋放的嗎,話說當其在函式裡面作為區域性變數的時候我也嘗試過釋放它,先是clear。後來發現clear不能釋放其記憶體。於是我依照網上說的用swap來手動釋放,但是終於還是沒用。最後誤打誤撞的,把它作為全域性變數,問題才得以解決,只是攻克了就好。

在debug底下程式已經能夠執行了,全都通過了。可接下來,我在release底下又遇到錯誤了。錯誤型別例如以下:

網上說這樣的我是加入opencv庫的時候加入錯了,我細緻看了我的additional dependencies的加入。在release底下我確實沒帶d啊。可怎麼就是出現了這樣的錯誤呢,要是是程式有問題,那怎麼debug底下能夠執行呢。我非常納悶,嘗試了非常多方法。最後抱著試試的態度,乾脆把release和debug底下都加入了帶d的庫檔案,奇葩的是問題盡然結局了。對於這我僅僅能表示相當無語啊。

特徵點提取opencv

opencv中提供了harris角點檢測的介面,即cv cornerharris 缺陷 角點是畫素級別的,速度較慢 dst cv2.cornerharris gray,2,3,0.04 img 資料型別為 float32 的輸入影象 blocksize 角點檢測中要考慮的領域大小 ksize sob...

SURF特徵提取

surf,全稱speeded up robust feature,是sift演算法的改進版和加速版,綜合性能更優。由herbert bay發表在2006年的歐洲計算機視覺國際會議 europen conference on computer vision,eccv 上。surf演算法利用了積分圖 特...

OpenCV2 3 1特徵點提取

今天做特徵點匹配實驗,從網上找來了surf特徵點檢測程式,除錯也調通了,但是執行之後就是沒有結果出來,還會出現執行之後程式崩潰的問題,後來試了好多遍,發現是由於lib檔案有問題,雖然在屬性裡已經新增了,但是仍然鏈結不上。解決方法是在程式開始新增lib檔案,如下所示。include opencv2 o...