Qt Creator5.12配置OpenCV4.3.0和opencv_contrib扩展包(亲测有效)
本文結(jié)構(gòu)
- 第一部分 只安裝Qt Creator和配置OpenCV
- 1.Qt Creator5.12.2下載與安裝
- 2.Cmake下載與安裝
- 3.OpenCV下載
- 4.編譯OpenCV
- 5.測(cè)試Qt程序
- 第二部分 配置opencv_contrib擴(kuò)展庫(kù)
- 6.添加opencv_contrib擴(kuò)展庫(kù)
- 7.測(cè)試使用opencv擴(kuò)展庫(kù)的Qt程序
- 8.本文使用的軟件百度網(wǎng)盤下載
最終結(jié)果展示
筆者使用的版本如下
友情提示:這里Opencv 和opencv_contrib版本需要一致,筆者踩過(guò)坑。
第一部分 只安裝Qt Creator和配置OpenCV
1.Qt Creator5.12.2下載與安裝
以win10家庭版為例進(jìn)行下載和安裝
官方下載地址http://download.qt.io/archive/qt/5.12/5.12.2/下面有百度網(wǎng)盤安裝包,請(qǐng)往下看
選擇window版本
安裝包有點(diǎn)大3.7G,下載很慢,最終報(bào)錯(cuò),跳轉(zhuǎn)到迅雷下載成功
這里給出筆者百度網(wǎng)盤安裝包window版本Qt 5.12.2
雙擊安裝包
這里需要注冊(cè)qt賬戶
注冊(cè)成功后登錄
自定義安裝路徑,要求路徑不能含有空格
選擇組件
同意協(xié)議許可
點(diǎn)擊下一步
下一步進(jìn)行安裝
安裝完成顯示如下
默認(rèn)是打開Qt界面
2.Cmake下載與安裝
官網(wǎng)下載地址https://cmake.org/download/,目前最新的版本是Cmake3.18.0
安裝
筆者選擇了如下配置:配置全局變量和創(chuàng)建桌面快捷方式
更改安裝路徑
安裝完成
3.OpenCV下載
官方下載地址:https://opencv.org/releases/
目前最新版本是4.3.0
這里選擇windows
下載完壓縮包名:opencv-4.3.0-vc14_vc15.exe
解壓完文件名:opencv
下面是將mingw加入環(huán)境變量
系統(tǒng)變量下找到PATH,點(diǎn)擊編輯,添加如下
D:\Qt5.12.2\Tools\mingw730_64\bin這是下載Qt時(shí)候的路徑,需要自己找到
根據(jù)知乎:PATH和path是一樣的,原因是:Windows系統(tǒng)對(duì)大小寫不敏感。
4.編譯OpenCV
根據(jù)安裝路徑,找到Cmake,點(diǎn)擊cmake.gui.exe
where is the source code
添加opencv的sources
新建文件夾opencv-build
where to build the binaries
D:/opencv/opencv-build
保持默認(rèn)MinGW Makefiles,點(diǎn)擊Specify native compilers,再next
編譯器選擇:這里自己的安裝路徑
C語(yǔ)言
C++
D:/Qt5.12.2/Tools/mingw730_64/bin/g++.exeFortran不用填
需要下拉,選中下面這兩個(gè)WITH_OPENGL和WITH_QT
出現(xiàn)錯(cuò)誤
錯(cuò)誤信息
解決辦法
在Opencv文件夾sources底下,也就是上面配置source code 的地址:D:/opencv/sources
在CMakeLists.txt文件下添加,位置如圖所示
這里是cmake配置opencv時(shí)候的編譯器選項(xiàng)位置
完成之后來(lái)到下面的界面
然后再次點(diǎn)擊configure,然后顯示configuring done
此時(shí),可以選擇關(guān)閉Cmake,打開
where to build the binaries
可以看到如下生成的文件
鼠標(biāo)放在該文件夾內(nèi),按住Shift鍵右擊鼠標(biāo),選擇在此處打開Powershell窗口
在Powershell中輸入
據(jù)參考博客的博主所言:這里的-j 8是為了讓CPU進(jìn)行多任務(wù)處理,可以加快編譯速度
進(jìn)行到40%發(fā)生錯(cuò)誤(這是沒(méi)有添加opencv-contrib擴(kuò)展庫(kù)時(shí)候的報(bào)錯(cuò))
解決辦法
在stackoverflow上面看到同樣的問(wèn)題https://stackoverflow.com/questions/61707195/error-building-opencv-with-mingw-qt-windows
打開我們新建的opencv-build文件下該路徑
D:\opencv\opencv-build\modules\core\CMakeFiles\opencv_core.dir
打開flags.make,然后把RC-DEFINES(下面劃線部分)替換掉
替換代碼(注:cmake每configure和generate之后都需要更改這個(gè)文件)
最終編譯完成
100%之后輸入
mingw32-make install完成之后退出
現(xiàn)在需要將以下路徑添加環(huán)境變量
D:\opencv\opencv-build\install\x64\mingw\bin5.測(cè)試Qt程序
新建project
選擇默認(rèn)的項(xiàng)目Application-Qt Widgets Application
項(xiàng)目命名和位置:注意這里不能有中文路徑,下面是錯(cuò)誤的示范,后面筆者又新建項(xiàng)目,重新改成英文的路徑,否則會(huì)報(bào)錯(cuò)
默認(rèn)下一步
繼續(xù)下一步
點(diǎn)擊完成
在test.pro文件該位置添加如下代碼
注意不要寫成這種形式:
//這是錯(cuò)誤的代碼 INCLUDEPATH += D:\opencv\opencv-build\install\include LIBS += D:\opencv\opencv-build\lib\正確的代碼
INCLUDEPATH += D:\opencv\opencv-build\install\include LIBS += D:\opencv\opencv-build\lib\libopencv_*.a
在mainwindow.cpp文件下添加相應(yīng)的包,添加代碼如下
點(diǎn)擊左下角的錘子,進(jìn)行構(gòu)建
會(huì)顯示正確的信息如下
點(diǎn)擊綠色的箭頭運(yùn)行
測(cè)試結(jié)果
顯示出圖片
至此,Qt5配置OpenCV安裝配置完成!
第二部分 配置opencv_contrib擴(kuò)展庫(kù)
該部分在第一部分的基礎(chǔ)上,配置opencv_contrib,本文結(jié)構(gòu)這樣安排的目的在于:第一,筆者先是安裝了qt和opencv,當(dāng)時(shí)沒(méi)想到要使用opencv_contrib擴(kuò)展庫(kù),也就是說(shuō)這是筆者真實(shí)的安裝過(guò)程;第二,基于對(duì)讀者的換位思考。經(jīng)過(guò)上面第一部分的配置工作,讀者可能初步產(chǎn)生配置成功的喜悅,以更好的狀態(tài)進(jìn)入到擴(kuò)展庫(kù)的部分。
6.添加opencv_contrib擴(kuò)展庫(kù)
1.下載opencv擴(kuò)展庫(kù),下載地址opencv_contrib全部版本下載地址
選擇版本4.3.0
解壓完:
2.編譯的事前準(zhǔn)備
打開路徑:在D:\opencv\sources\cmake下面找到OpenCVCompilerOptions.cmake文件,打開它并找到add_extra_compiler_option(-Werror=non-virtual-dtor),
將其注釋掉,如:
#add_extra_compiler_option(-Werror=non-virtual-dtor)
(這一步,筆者不知道是干嘛所用)
這一步參考該篇博文:qt5(mingw版) opencv3.0(含contrib擴(kuò)展)配置詳解
由于是后面補(bǔ)充的contrib擴(kuò)展庫(kù),打開Cmake,在第一部分配置成功后選中下面這個(gè)NONFREE
再搜索path,找到OPENCV-EXTRA-MODULES_PATH,配置value,找到解壓后的擴(kuò)展庫(kù),路徑到modules文件,這里配置value
下面便可以點(diǎn)擊generate,顯示generating done
每次generate之后都要經(jīng)過(guò)第4步修改flags.make 文件,請(qǐng)參考第4步
(如果電腦沒(méi)有安裝cuda,請(qǐng)去掉勾選BUILD_CUDA_STUBS,否則會(huì)找不到cuda從而報(bào)錯(cuò))
然后generate(下面這是錯(cuò)誤的圖,因?yàn)槲慈サ鬊UILD_CUDA_STUBS)
然后開始重復(fù)上面沒(méi)有配置opencv_contrib的步驟4:編譯OpenCV
在Powershell中輸入
在26%遇到問(wèn)題
這個(gè)問(wèn)題的解決需要去掉勾選BUILD_CUDA_STUBS
后面遇到錯(cuò)誤
解決辦法:如果出現(xiàn)dynafu.cpp的錯(cuò)誤,BUILD_opencv_rgbd與WITH_OPENGL只能勾選其一
去掉勾選BUILD_opencv_rgbd
還發(fā)現(xiàn)這樣的錯(cuò)誤
[ 56%] [ 56%] Scanning dependencies of target opencv_aruco Building CXX object modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc.cpp.objBuilding CXX object modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/brief.cpp.obj[ 56%] Building CXX object modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/daisy.cpp.obj [ 56%] [ 56%] Building CXX object modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/ellipticKeyPoint.cpp.objBuilding CXX object modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/fast.cpp.obj[ 58%] Built target opencv_bioinspired [ 58%] Built target opencv_ximgproc Scanning dependencies of target opencv_ccalib Scanning dependencies of target opencv_dnn_objdetect D:\opencv_contrib-3.4\opencv_contrib-3.4\modules\xfeatures2d\src\boostdesc.cpp:654:20: fatal error: boostdesc_bgm.i: No such file or directory#include "boostdesc_bgm.i"^~~~~~~~~~~~~~~~~ compilation terminated. mingw32-make[2]: *** [modules\xfeatures2d\CMakeFiles\opencv_xfeatures2d.dir\build.make:102: modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc.cpp.obj] Error 1 mingw32-make[2]: *** Waiting for unfinished jobs....按照這個(gè)教程下載zip包,解壓之后
安裝OpenCV時(shí)提示缺少boostdesc_bgm.i文件的問(wèn)題解決方案(附帶百度云資源)
在這個(gè)路徑內(nèi)復(fù)制
D:\opencv_contrib-4.3.0\opencv_contrib-4.3.0\modules\xfeatures2d\src結(jié)果跑到88%還是有錯(cuò)誤
此處bug參考:樹莓派4的opencv4.1.0–python3.7的開發(fā)環(huán)境安裝
我們回到opencv4.3.0文件夾下復(fù)制下面兩個(gè)文件到報(bào)錯(cuò)的路徑下
復(fù)制到如下路徑(總共需要復(fù)制5個(gè)hpp文件)
D:\opencv_contrib-4.3.0\opencv_contrib-4.3.0\modules\xfeatures2d\test修改test_features2d.cpp文件(具體修改哪個(gè)文件,需要查看報(bào)錯(cuò)的位置,哪個(gè)文件引用)
修改之前
修改之后
#include "test_detectors_regression.impl.hpp" #include "test_descriptors_regression.impl.hpp"發(fā)現(xiàn)成功一處,還有一處錯(cuò)誤
打開test_rotation_and_scale_invariance.cpp文件
修改前
修改后
#include "test_detectors_invariance.impl.hpp" // main OpenCV repo #include "test_descriptors_invariance.impl.hpp" // main OpenCV repo
還有錯(cuò)誤
同樣的步驟,把相應(yīng)的文件復(fù)制過(guò)來(lái),結(jié)果100%成功
100%之后輸入
mingw32-make install完成之后退出
7.測(cè)試使用opencv擴(kuò)展庫(kù)的Qt程序
請(qǐng)參考第5步:測(cè)試Qt程序
這里只是在配置了opencv_contrib之后,引入頭文件#include <opencv2/xfeatures2d.hpp>
在mainwindow.cpp文件下添加相應(yīng)的包,添加代碼如下
到這里:完整的Qt Creator5.12+OpenCV4.3.0+opencv_contrib4.3.0配置就完成了!
8.本文使用的軟件百度網(wǎng)盤下載
鏈接:https://pan.baidu.com/s/1_gRt_bHAjKq6tRlKgF8FLQ
提取碼:4qmo
附上編譯后的文件夾opencv-build
參考博客:
兩個(gè)博客都有用
[1]【Qt5.12】Qt5.12安裝教程
[2]win10系統(tǒng)Qt5.12配置OpenCV4.0.1庫(kù)教程暨Qt,OpenCV,Cmake詳細(xì)下載安裝教程(史上最全!)
總結(jié)
以上是生活随笔為你收集整理的Qt Creator5.12配置OpenCV4.3.0和opencv_contrib扩展包(亲测有效)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 测试软件Postman下载(亲测有效)
- 下一篇: Java类的继承(将来填坑)