日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt Creator5.12配置OpenCV4.3.0和opencv_contrib扩展包(亲测有效)

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt Creator5.12配置OpenCV4.3.0和opencv_contrib扩展包(亲测有效) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文結構

    • 第一部分 只安裝Qt Creator和配置OpenCV
      • 1.Qt Creator5.12.2下載與安裝
      • 2.Cmake下載與安裝
      • 3.OpenCV下載
      • 4.編譯OpenCV
      • 5.測試Qt程序
    • 第二部分 配置opencv_contrib擴展庫
      • 6.添加opencv_contrib擴展庫
      • 7.測試使用opencv擴展庫的Qt程序
      • 8.本文使用的軟件百度網盤下載

最終結果展示

筆者使用的版本如下
友情提示:這里Opencv 和opencv_contrib版本需要一致,筆者踩過坑。

Win10 家庭版 64位 Qt Creator 5.12.2 Cmake 3.18.0 Opencv 4.3.0 opencv_contrib 4.3.0

第一部分 只安裝Qt Creator和配置OpenCV

1.Qt Creator5.12.2下載與安裝

以win10家庭版為例進行下載和安裝
官方下載地址http://download.qt.io/archive/qt/5.12/5.12.2/下面有百度網盤安裝包,請往下看
選擇window版本

安裝包有點大3.7G,下載很慢,最終報錯,跳轉到迅雷下載成功
這里給出筆者百度網盤安裝包window版本Qt 5.12.2

雙擊安裝包

這里需要注冊qt賬戶

注冊成功后登錄

自定義安裝路徑,要求路徑不能含有空格

選擇組件

同意協議許可

點擊下一步

下一步進行安裝

安裝完成顯示如下

默認是打開Qt界面

2.Cmake下載與安裝

官網下載地址https://cmake.org/download/,目前最新的版本是Cmake3.18.0


安裝

筆者選擇了如下配置:配置全局變量和創建桌面快捷方式

更改安裝路徑

安裝完成

3.OpenCV下載

官方下載地址:https://opencv.org/releases/
目前最新版本是4.3.0
這里選擇windows

下載完壓縮包名:opencv-4.3.0-vc14_vc15.exe
解壓完文件名:opencv

下面是將mingw加入環境變量

系統變量下找到PATH,點擊編輯,添加如下

D:\Qt5.12.2\Tools\mingw730_64\bin

這是下載Qt時候的路徑,需要自己找到

根據知乎:PATH和path是一樣的,原因是:Windows系統對大小寫不敏感。

4.編譯OpenCV

根據安裝路徑,找到Cmake,點擊cmake.gui.exe

where is the source code
添加opencv的sources

D:/opencv/sources

新建文件夾opencv-build

where to build the binaries

D:/opencv/opencv-build


保持默認MinGW Makefiles,點擊Specify native compilers,再next

編譯器選擇:這里自己的安裝路徑
C語言

D:/Qt5.12.2/Tools/mingw730_64/bin/gcc.exe

C++

D:/Qt5.12.2/Tools/mingw730_64/bin/g++.exe

Fortran不用填

需要下拉,選中下面這兩個WITH_OPENGL和WITH_QT

出現錯誤

錯誤信息

CMake Error at cmake/OpenCVFindLibsGUI.cmake:18 (find_package):Could not find a package configuration file provided by "Qt5" with any ofthe following names:Qt5Config.cmakeqt5-config.cmakeAdd the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"to a directory containing one of the above files. If "Qt5" provides aseparate development package or SDK, be sure it has been installed. Call Stack (most recent call first):CMakeLists.txt:685 (include)Configuring incomplete, errors occurred!

解決辦法
在Opencv文件夾sources底下,也就是上面配置source code 的地址:D:/opencv/sources
在CMakeLists.txt文件下添加,位置如圖所示

set (CMAKE_PREFIX_PATH "D:\\Qt5.12.2\\5.12.2\\mingw73_64\\")

這里是cmake配置opencv時候的編譯器選項位置


完成之后來到下面的界面

然后再次點擊configure,然后顯示configuring done

此時,可以選擇關閉Cmake,打開
where to build the binaries

D:/opencv/opencv-build

可以看到如下生成的文件

鼠標放在該文件夾內,按住Shift鍵右擊鼠標,選擇在此處打開Powershell窗口

在Powershell中輸入

mingw32-make -j 8

據參考博客的博主所言:這里的-j 8是為了讓CPU進行多任務處理,可以加快編譯速度

進行到40%發生錯誤(這是沒有添加opencv-contrib擴展庫時候的報錯)

gcc: error: long: No such file or directory D:\Qt5.12.2\Tools\mingw730_64\bin\windres.exe: preprocessing failed. mingw32-make[2]: *** [modules\core\CMakeFiles\opencv_core.dir\build.make:1495: modules/core/CMakeFiles/opencv_core.dir/vs_version.rc.obj] Error 1 mingw32-make[2]: *** Waiting for unfinished jobs.... mingw32-make[1]: *** [CMakeFiles\Makefile2:1889: modules/core/CMakeFiles/opencv_core.dir/all] Error 2 mingw32-make: *** [Makefile:182: all] Error 2 PS D:\opencv\opencv-build>

解決辦法
在stackoverflow上面看到同樣的問題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之后都需要更改這個文件)

RC_DEFINES = -DCVAPI_EXPORTS -D_USE_MATH_DEFINES -D_WIN32_WINNT=0x0601 -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS

最終編譯完成

100%之后輸入

mingw32-make install

完成之后退出

現在需要將以下路徑添加環境變量

D:\opencv\opencv-build\install\x64\mingw\bin

5.測試Qt程序

新建project

選擇默認的項目Application-Qt Widgets Application

項目命名和位置:注意這里不能有中文路徑,下面是錯誤的示范,后面筆者又新建項目,重新改成英文的路徑,否則會報錯

默認下一步

繼續下一步

點擊完成

在test.pro文件該位置添加如下代碼

注意不要寫成這種形式:

//這是錯誤的代碼 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文件下添加相應的包,添加代碼如下

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/xfeatures2d.hpp> using namespace cv; Mat image=imread("D:\\m1521\\Pictures\\Saved Pictures\\cute-2528119.jpg",1);namedWindow( "Display window", WINDOW_AUTOSIZE );imshow("Display window", image );

點擊左下角的錘子,進行構建

會顯示正確的信息如下

01:55:07: 為項目test執行步驟 ... 01:55:07: 配置沒有改變, 跳過 qmake 步驟。 01:55:07: 正在啟動 "D:\Qt5.12.2\Tools\mingw730_64\bin\mingw32-make.exe" -j8D:/Qt5.12.2/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug mingw32-make[1]: Entering directory 'D:/m1521/Documents/Qt_opencv/test/build-test-Desktop_Qt_5_12_2_MinGW_64_bit-Debug' mingw32-make[1]: Nothing to be done for 'first'. mingw32-make[1]: Leaving directory 'D:/m1521/Documents/Qt_opencv/test/build-test-Desktop_Qt_5_12_2_MinGW_64_bit-Debug' 01:55:08: 進程"D:\Qt5.12.2\Tools\mingw730_64\bin\mingw32-make.exe"正常退出。 01:55:08: Elapsed time: 00:01.

點擊綠色的箭頭運行

測試結果
顯示出圖片

至此,Qt5配置OpenCV安裝配置完成!

第二部分 配置opencv_contrib擴展庫

該部分在第一部分的基礎上,配置opencv_contrib,本文結構這樣安排的目的在于:第一,筆者先是安裝了qt和opencv,當時沒想到要使用opencv_contrib擴展庫,也就是說這是筆者真實的安裝過程;第二,基于對讀者的換位思考。經過上面第一部分的配置工作,讀者可能初步產生配置成功的喜悅,以更好的狀態進入到擴展庫的部分。

6.添加opencv_contrib擴展庫

1.下載opencv擴展庫,下載地址opencv_contrib全部版本下載地址

選擇版本4.3.0
解壓完:

2.編譯的事前準備
打開路徑:在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擴展)配置詳解

由于是后面補充的contrib擴展庫,打開Cmake,在第一部分配置成功后選中下面這個NONFREE

再搜索path,找到OPENCV-EXTRA-MODULES_PATH,配置value,找到解壓后的擴展庫,路徑到modules文件,這里配置value

下面便可以點擊generate,顯示generating done
每次generate之后都要經過第4步修改flags.make 文件,請參考第4步
(如果電腦沒有安裝cuda,請去掉勾選BUILD_CUDA_STUBS,否則會找不到cuda從而報錯)

然后generate(下面這是錯誤的圖,因為未去掉BUILD_CUDA_STUBS)

然后開始重復上面沒有配置opencv_contrib的步驟4:編譯OpenCV
在Powershell中輸入

mingw32-make -j 8

在26%遇到問題

[ 26%] Building CXX object modules/ml/CMakeFiles/opencv_ml.dir/src/em.cpp.obj [ 26%] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/approx.cpp.obj [ 26%] Building CXX object modules/ml/CMakeFiles/opencv_ml.dir/src/gbt.cpp.obj [ 26%] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/bilateral_filter.dispatch.cpp.obj [ 26%] Building CXX object modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/src/lut.cpp.obj In file included from D:\opencv_contrib-4.3.0\opencv_contrib-4.3.0\modules\cudaarithm\src\lut.cpp:7:0: D:\opencv_contrib-4.3.0\opencv_contrib-4.3.0\modules\cudaarithm\src\lut.hpp:10:10: fatal error: cuda_runtime.h: No such file or directory#include <cuda_runtime.h>^~~~~~~~~~~~~~~~ compilation terminated. mingw32-make[2]: *** [modules\cudaarithm\CMakeFiles\opencv_cudaarithm.dir\build.make:125: modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/src/lut.cpp.obj] Error 1 mingw32-make[1]: *** [CMakeFiles\Makefile2:4335: modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/all] Error 2 mingw32-make[1]: *** Waiting for unfinished jobs...

這個問題的解決需要去掉勾選BUILD_CUDA_STUBS

后面遇到錯誤

error: 'GL_RENDERBUFFER_EXT' was not declared in this scopeglBindRenderbufferEXT(GL_RENDERBUFFER_EXT, fbo_depth);

解決辦法:如果出現dynafu.cpp的錯誤,BUILD_opencv_rgbd與WITH_OPENGL只能勾選其一
去掉勾選BUILD_opencv_rgbd

還發現這樣的錯誤

[ 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....

按照這個教程下載zip包,解壓之后

安裝OpenCV時提示缺少boostdesc_bgm.i文件的問題解決方案(附帶百度云資源)

在這個路徑內復制

D:\opencv_contrib-4.3.0\opencv_contrib-4.3.0\modules\xfeatures2d\src

結果跑到88%還是有錯誤

fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory#include "features2d/test/test_detectors_regression.impl.hpp"

此處bug參考:樹莓派4的opencv4.1.0–python3.7的開發環境安裝
我們回到opencv4.3.0文件夾下復制下面兩個文件到報錯的路徑下

復制到如下路徑(總共需要復制5個hpp文件

D:\opencv_contrib-4.3.0\opencv_contrib-4.3.0\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 "test_detectors_invariance.impl.hpp" // main OpenCV repo #include "test_descriptors_invariance.impl.hpp" // main OpenCV repo


還有錯誤

同樣的步驟,把相應的文件復制過來,結果100%成功

100%之后輸入

mingw32-make install

完成之后退出

7.測試使用opencv擴展庫的Qt程序

請參考第5步:測試Qt程序
這里只是在配置了opencv_contrib之后,引入頭文件#include <opencv2/xfeatures2d.hpp>
在mainwindow.cpp文件下添加相應的包,添加代碼如下

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/xfeatures2d.hpp> using namespace cv; Mat image=imread("D:\\m1521\\Pictures\\Saved Pictures\\cute-2528119.jpg",1);namedWindow( "Display window", WINDOW_AUTOSIZE );imshow("Display window", image );

到這里:完整的Qt Creator5.12+OpenCV4.3.0+opencv_contrib4.3.0配置就完成了!

8.本文使用的軟件百度網盤下載

鏈接:https://pan.baidu.com/s/1_gRt_bHAjKq6tRlKgF8FLQ
提取碼:4qmo
附上編譯后的文件夾opencv-build

參考博客:
兩個博客都有用
[1]【Qt5.12】Qt5.12安裝教程
[2]win10系統Qt5.12配置OpenCV4.0.1庫教程暨Qt,OpenCV,Cmake詳細下載安裝教程(史上最全!)

總結

以上是生活随笔為你收集整理的Qt Creator5.12配置OpenCV4.3.0和opencv_contrib扩展包(亲测有效)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。