opencv程式調試問題及解決方案1

來源:互聯網
上載者:User

本人很菜,也沒怎麼學習過C++,opencv程式運行時經常出錯,所以把問題和解決方案都記下來以免再犯。

OpenCV的feature2d module中提供了從局部映像特徵(Local image feature)的檢測、特徵向量(feature vector)的提取,到特徵匹配的實現。其中的局部映像特徵包括了常用的幾種局部映像特徵檢測與描述運算元,如FAST、SURF、SIFT、以及ORB。對於高維特徵向量之間的匹配,opencv主要有兩種方式:1)BruteForce窮舉法;2)FLANN近似K近鄰演算法(包含了多種高維特徵向量匹配的演算法,例如隨機森林等)。


feature2d module: http://docs.opencv.org/modules/features2d/doc/features2d.html

OpenCV FLANN: http://docs.opencv.org/modules/flann/doc/flann.html

FLANN: http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN



opencv特徵檢測和匹配程式運行常見錯誤及解決方案

1)使用特徵點檢測需要增加使用一下兩個標頭檔:
#include "opencv2/nonfree/nonfree.hpp"
#include "opencv2/legacy/legacy.hpp"


2)Vector容器使用時報錯:代碼中顯示缺少類模板“std::vector”的參數列表

解決方案:可以看標頭檔中類的定義,

正確使用:

std::vector<DMatch> matches;

std::vector<KeyPoint> queryKeypoints, trainKeypoints;

std::vector<vector<DMatch>> knnmatches;


initModule_nonfree();//報錯,標頭檔加#include "opencv2/nonfree/nonfree.hpp"解決


3)Error1error C1075: end of file found before the left brace '{' at 'd:\program files (x86)\opencv2_4_13\projectopencv2413\featuredetectedandmatch\feature2d\feature2d\source.cpp(27)' was matched


原因:缺少"}",是括弧不匹配的問題或某些特殊的逸出字元多寫了。


4)main函數的參數列表儲存了輸入參數的資訊,第一個參數argc記錄了輸入參數的個數,  
   第二個參數是字串數組的,字串數組的每個單元是char*類型的,指向一個c風格字串。  
   以notepad.exe   example.txt為例  
   argc是2,就是說argv數組中有兩個有效單元  
   第一單元指向的字串是"notepad.exe"  
   第二單元指向的字串是"example.txt"  
    
   argv數組中的第一個單元指向的字串總是可執行程式的名字,以後的單元指向的字串依次是程式調用時的參數。  
      這個賦值過程是編譯器完成的,我們只需要讀出資料就可以了。




int     main(   int   argc   ,   char   *argv[]   ,   char   *envp[]   )  
   main()函數一般用int或者void形的。我比較喜歡用int型定義main。因為在結束的時候可以返回給作業系統一個值以表示執行情況。  
    
   int   argc  
   這個東東用來表示你在命令列下輸入命令的時候,一共有多少個參數。比方說你的程式編譯後,可執行檔是test.exe  
   D:\tc2>test  
   這個時候,argc的值是1  
   但是  <

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.