VS2015配置OpenCV-contribu4.1.1及缺少xfeatures2d等無法打開包括文件: “features2d/test/test_detectors_regression.im問題


一、配置環境:VS2015+OpenCV4.1.1+OpenCV_contrib-4.1.1+CMake3.17.1

下載鏈接:

OpenCV:https://opencv.org/releases/

OpenCV_contrib:https://github.com/opencv/opencv_contrib/releases   OpenCV_contrib版本必須要與OpenCV版本一致

CMake:https://cmake.org/download/

 

二、安裝步驟

2.1 CMake編譯

(1)先安裝OpenCV.exe,記住安裝路徑,盡量不要中文。

(2)安裝好之后一般是buildsources這兩個文件夾。

(3)在OpenCV安裝目錄下新建一個文件夾,用來保存編譯后的結果。如圖所示的webuild文件夾。

(4)--點擊Configure,選擇VS的版本Visual Studio 15 2015 ;第二個選擇X64位系統(根據自己系統來),曾在這翻車;然后點擊finish等待編譯;

Configuring Done 后如果出現紅色區域;勾選BUILD_opencv_world,BUILD_EXAMPLES(大體趨勢);

此外找到OPENCV_EXTRA_MODULES_PATH,添加路徑D:\Program Files\opencv_contrib-4.1.1\modules

然后據說OpenCV4.0之后的版本必須將OPENCV_ENABLE_NONFREE 勾上,翻車之一。

再次點擊Configure沒有紅色為止並 Configuring Done后點擊Generate,出現Generatring Done;

2.2 編譯VS2015

打開webuild中的OpenCV.sln,右鍵點擊解決方案,重新生成解決方案,等待生成完成;

生成解決方案,翻車多次,總是有錯誤,一個個解決。

記住選擇Debug  +  X64 (根據系統配置來)

然后在CMakeTargets下找到INSTALL,右鍵僅用於項目,僅生成INSATLL;完成后webuild文件夾里多了一個install文件夾:

到此編譯工作基本完成了。

三、配置OpenCV與VS2015的環境

(1)環境變量,系統變量,在path中添加OpenCV的路徑:D:\Program Files\opencv4.1.1\opencv\webuild\install\x64\vc14\bin

(2)新建一個空的Debug  +  X64項目,點擊菜單欄的"視圖"–>“其他窗口”–>“屬性管理器”。


在Microsoft.Cpp.x64.user–>VC++目錄–>庫目錄中加入

包含目錄:

D:\Program Files\opencv4.1.1\opencv\webuild\install\include

D:\Program Files\opencv4.1.1\opencv\webuild\install\include\opencv2

 

庫目錄:

D:\Program Files\opencv4.1.1\opencv\webuild\install\x64\vc14\lib

D:\Program Files\opencv4.1.1\opencv\webuild\install\x64\vc14\bin

 

連接器,輸入,附加依賴項

附加依賴項:

opencv_world411d.lib
opencv_aruco411d.lib
opencv_bgsegm411d.lib
opencv_bioinspired411d.lib
opencv_calib3d411d.lib
opencv_ccalib411d.lib
opencv_core411d.lib
opencv_datasets411d.lib
opencv_dnn_objdetect411d.lib
opencv_dnn411d.lib
opencv_dpm411d.lib
opencv_face411d.lib
opencv_features2d411d.lib
opencv_flann411d.lib
opencv_fuzzy411d.lib
opencv_gapi411d.lib
opencv_hfs411d.lib
opencv_highgui411d.lib
opencv_img_hash411d.lib
opencv_imgcodecs411d.lib
opencv_imgproc411d.lib
opencv_line_descriptor411d.lib
opencv_ml411d.lib
opencv_objdetect411d.lib
opencv_optflow411d.lib
opencv_phase_unwrapping411d.lib
opencv_photo411d.lib
opencv_plot411d.lib
opencv_quality411d.lib
opencv_reg411d.lib
opencv_rgbd411d.lib
opencv_saliency411d.lib
opencv_shape411d.lib
opencv_stereo411d.lib
opencv_stitching411d.lib
opencv_structured_light411d.lib
opencv_superres411d.lib
opencv_surface_matching411d.lib
opencv_text411d.lib
opencv_tracking411d.lib
opencv_video411d.lib
opencv_videoio411d.lib
opencv_videostab411d.lib
opencv_xfeatures2d411d.lib
opencv_ximgproc411d.lib
opencv_xobjdetect411d.lib
opencv_xphoto411d.lib

程序讀取:

import os
for name in os.listdir('./'):
	print(name)

配置完成!

四、測試結果

 

五、問題

配置完之后無法使用xfeature2d模塊,出現無法打開包括文件: “features2d/test/test_detectors_regression.impl.hpp”錯誤;

無法生成xfeatures2d的動態庫:OpenCV源碼中opencv/sources/3rdparty/ffmpeg 中缺少opencv_ffmpeg.dllopencv_ffmpeg_64.dll.

1、“boostdesc_bgm.i”: No such file or directory opencv_xfeatures2d D:\OpenCV\opencv_contrib-4.1.1\modules\xfeatures2d\src\boostdesc.cpp 654

在OpenCV-contribu4.1.1路徑中D:\Program Files\opencv_contrib-4.1.1\modules\xfeatures2d\src,補齊以下文件,(網上搜索下載放到路徑文件夾中)。

2、“features2d/test/test_detectors_regression.impl.hpp”錯誤、No such file or directory opencv_test_xfeatures2d D:\OpenCV\opencv_contrib-4.1.1\modules\xfeatures2d\test\test_features2d.cpp 51。

 

在OpenCV路徑下D:\Program Files\opencv4.1.1\opencv\sources\modules\features2d\test,修改頭文件,或者改變文件路徑,或者補齊以下5個文件。

test_descriptors_invariance.impl.hpp
test_descriptors_regression.impl.hpp
test_detectors_invariance.impl.hpp
test_detectors_regression.impl.hpp
test_invariance_utils.hpp

將opencv-4.1.1/modules/features2d/test/文件下的5個文件拷貝到opencv_contrib-4.1.1/modules/xfeatures2d/test/文件下。同時修改頭文件。

① test_features2d.cpp

#include "features2d/test/test_detectors_regression.impl.hpp"
#include "features2d/test/test_descriptors_regression.impl.hpp"

 

修改成

 

 

#include "test_detectors_regression.impl.hpp"
#include "test_descriptors_regression.impl.hpp"

 

② test_rotation_and_scale_invariance.cpp

 

 

#include "features2d/test/test_detectors_invariance.impl.hpp"
#include "features2d/test/test_descriptors_invariance.impl.hpp"

 

修改成

 

 

#include "test_detectors_invariance.impl.hpp"
#include "test_descriptors_invariance.impl.hpp"

 

修改完了之后再用VS2015重新生成解決方案->INSTALL,發現在D:\OpenCV4.1.1\opencv\webuild\install\x64\vc14\lib的庫中終於生成了opencv_xfeatures2d411d.lib。再把它加到附加項中。重復以下 ‘’三‘’中的步驟,會發現生成解決方案時,成功的個數會變多。最后用測試代碼進行測試,發現沒有問題。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM