OpenCV使用之-----BruteForceMatcher報錯“無法識別的標識符”

      網友投稿 1204 2022-05-30

      最近Opencv升級比較快,從2.4.0到2.4.1到2.4.2,使得我這個還在使用2.3.1的人很不好意思,而且聽說新版本里添加了tbb并行功能,急著想用這些功能的我趕緊下了2.4.2。

      OpenCV使用之-----BruteForceMatcher報錯“無法識別的標識符”

      按部就班的解壓、設置c++目錄(我使用的是vs2008)、設置環境變量......一系列的完成之后,想用一下surf算法,就嘗試著把pdf文檔里的代碼復制到了vs里,運行一下,發現不行,報錯。。。瞬間有點被騙的感覺,這可是從官方發布的pdf里的最新代碼啊!!!

      #include

      #include "opencv2/core/core.hpp"

      #include "opencv2/features2d/features2d.hpp"

      #include "opencv2/highgui/highgui.hpp"

      #include "opencv2/nonfree/nonfree.hpp"

      #include "opencv2/nonfree/features2d.hpp"

      using namespace std;

      using namespace cv;

      char *path1="D:\\TestData\\cvtest\\src\\left01.jpg";

      char *path2="D:\\TestData\\cvtest\\src\\left03.jpg";

      int main()

      {

      Mat src1=imread(path1,0);

      /*namedWindow("image",CV_WINDOW_AUTOSIZE);

      imshow("image", src1);

      waitKey(0);*/

      Mat src2=imread(path2,0);

      SurfFeatureDetector detector(400);

      vector keypoint1,keypoint2;

      detector.detect(src1,keypoint1);

      detector.detect(src2,keypoint2);

      SurfDescriptorExtractor extractor;

      Mat descriptor1,descriptor2;

      extractor.compute(src1,keypoint1,descriptor1);

      extractor.compute(src2,keypoint2,descriptor2);

      BruteForceMatcher> matcher;

      vectormatches;

      matcher.match(descriptor1,descriptor2,matches);

      namedWindow("matches",1);

      Mat img_matches;

      drawMatches(src1,keypoint1,src2,keypoint2,matches,img_matches);

      imshow("matches",img_matches);

      cvWaitKey(0);

      return 0;

      }

      但是新的問題出來了,說link出現問題,沒經驗的我還是只能問google(谷歌確實強大啊!!!),牛人一針見血的指出了問題所在:For those who would have the same problem, make sure you have ALL the right linker inputs (configuration -> linker -> inputs), included dlls such as opencv, highgui etc.在右鍵“屬性”->"鏈接器"->“輸入”->"附加依賴項"把新輸入的legacy的靜態文件opencv_legacy242d.lib加進來就ok了!

      遇到的問題及解決:

      1、大量的.dll文件(如msvcr100d.dll)未加載,這個可能是一些包含的相關的.dll文件的路徑沒加入到PATH中,可以找到位置后加入PATH,或者在工程調試選項中 設置對 源服務器的支持 與 microsoft符號服務器 的支持(需聯網)。

      2、參考 http://www.cnblogs.com/ll2008swu/archive/2012/07/23/2605639.html 在做2維特征提取時,發現SurfFeatureDetector并不在opencv2/features2d/features2d.hpp?而是在opencv2/nonfree/features2d.hpp

      BruteForceMatcher ?需加入opencv2/nonfree/features2d.hpp

      包含上面文件最終還需加入 opencv2/legacy/legacy.hpp

      //同時為正常link,須Linker下加入-lopencv_nonfree240(不然會出現error LNK2019: 無法解析的外部符號的問題)。

      使用VC者依版本將opencv_nonfree242d.lib所在位置加入Linker路徑設定中即可順利執行

      OpenCV

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:MindInsight安裝及可視化集群調優
      下一篇:zabbix通過API接口管理監控服務(三十)
      相關文章
      亚洲AV无码专区日韩| 国产产在线精品亚洲AAVV| 中文字幕亚洲乱码熟女一区二区 | 亚洲激情电影在线| 无码乱人伦一区二区亚洲一| 亚洲AV午夜福利精品一区二区| 国产亚洲色婷婷久久99精品91| 亚洲日韩VA无码中文字幕| 亚洲国产成人a精品不卡在线| 无码天堂va亚洲va在线va| 成a人片亚洲日本久久| 亚洲国产综合精品中文字幕| 亚洲情a成黄在线观看| 中文字幕第一页亚洲| 亚洲精品无码高潮喷水在线| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲精品国产品国语在线| 久久精品国产精品亚洲色婷婷| 亚洲性天天干天天摸| 亚洲午夜久久久久久尤物| 亚洲一区二区三区免费视频| 久久久国产亚洲精品| 亚洲乱妇老熟女爽到高潮的片| 亚洲av无码专区国产不乱码| 国产成人高清亚洲一区91| 久久亚洲国产精品123区| 亚洲国产无套无码av电影| 久久综合日韩亚洲精品色| 久久国产亚洲高清观看| 亚洲剧情在线观看| 亚洲精品永久在线观看| 无码欧精品亚洲日韩一区夜夜嗨| 久久精品国产精品亚洲| 久久精品国产亚洲AV麻豆~| 亚洲精品国产啊女成拍色拍| 自拍日韩亚洲一区在线| 亚洲av成人片在线观看| 中文字幕人成人乱码亚洲电影| 亚洲A∨无码一区二区三区| 亚洲一区二区三区国产精品无码| 亚洲国产精品无码中文lv|