• 详解QT5.10.0搭载OpenCV3.4.0环境配置步骤说明


    一、准备工作:

      1下载Qt5.10.0 和 Qt Creator 4.5.0软件(http://download.qt.io/official_releases/qt/

      2.下载opencv3.40 (https://opencv.org/releases.html)

      3.下载Cmake3.10.1 (https://cmake.org/download/

    二、软件安装

      1.qt软件安装与配置

      ①安装Qt5.10.0,我的安装路径:D:Qt

      注意点:在弹出的“选择组件窗口”中,选择相关组件(支持QtCreator开发方式如下图所以,支持VisualStudio开发方式则增加相应的MSVC对应的版本),选择组件中关于“Strawberry Perl 5.22.1.3”的不勾选(这个组件在非首次安装时容易报错且当下学习使用不到),勾选下方工具的MinGw5.3.0设置完毕后,点击“下一步按钮”进入下一步安装即可。

      ②安装Qt Creator 4.5.0软件,安装D:Qt目录下,选项默认即可。

      ③设置环境变量,在系统环境变量path中添加:

      D:QtQt5.10.05.10.0mingw53_32in;

      D:QtQt5.10.0Toolsmingw530_32in

      2. CMake安装和配置

      默认安装,不一定非要安装在C盘,可以放入与QT安装的目录下。

      注意点:在安装过程中勾选“为所有用户添加环境变量”:Add CMake to the system PATH for all users 。

      3.opencv安装

      opencv的安装实际上是解压,解压到用户指定位置,在这里我的目录是D:Qt,这样安装路径统一在同一个文件夹下。

    三、Opencv库的编译

      1.配置CMake编译条件

      ①打开CMake(cmake-gui)。

      ②选择OpenCV安装目录下的源码文件:D:Qtopencv3.40opencvsources

      ③选择想要编译输出目录文件路径,如统一存在统一目录下,在D:Qt文件下新建一个opencvbuild3.40 文件夹,选择该路径: D:Qtopencvbuild3.40

      ④点击Configure进行配置。

                ⑤选择MinGW Makefiles,勾选Special native compilers然后点击Next

                ⑥配置编译器

        在下图1处,C编译器选择D:QtQt5.10.0Toolsmingw530_32ingcc.exe;

        在下图2处,C++编译器选择D:QtQt5.10.0Toolsmingw530_32ing++.exe

        Fortran不用填写,然后点击finish。注意:此过程保证网络畅通,因为需要下载几个文件。

     

                ⑦等待一会儿后,会有一堆红色出现,勾选WITH_QT和WITH_OPENGL,不能勾选WITH_IPP(默认不勾选),再次点击configure。

        注意:若仍有红色出现,再次点击configure直至红色消失(有时需要多次,一般情况下两次即可)。最后,点击Generate按钮,完成后即可关闭CMake。

      2. 编译

      ①在编译之前,在源目录D:Qtopencv3.4.0opencvsourcecmake下找到OpenCVCompilerOptions.cmake文件。

        记事本打开文件,找到add_extra_compiler_option(-Werror=non-virtual-dtor)

        将它注释掉,前面加#变成:#add_extra_compiler_option(-Werror=non-virtual-dtor)

     

      ②然后按住快捷键win+R,运行cmd

      进入编译输出目录D:Qtopencvbuild3.40,然后输入”mingw32-make“命令. 备注:加速编译时间可以使用可选参指令” mingw32-make -j 8 “(处理器是i7-3770为8核),

      注意点:编译opencv,此过程时间较长,电脑编译了一个多小时。

     

      ③直到编译结束。然后输入命令:mingw32-make install ,大约一到两分钟就安装完成了。

       注意点:若编译期间出现如下错误:

        错误: ... windres.exe: unknown option -- W ...

        根据提示依据如下思路解决: in cmake uncheck ENABLE_PRECOMPILED_HEADERS

        即:即在3.1.7步骤中Cmake勾选勾选WITH_QT和WITH_OPENGL时候将ENABLE_PRECOMPILED_HEADERS勾选去除,重新configure 并重新编译;

        http://answers.opencv.org/question/168538/building-opencv-with-mingw-gcc-710-and-cmake-390-windresexe-unknown-option-w/

        错误:in the file opencv/sources/modules/videoio/src/cap_dshow.cpp, you have the following error : 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope ...

        解决:put the following line: #define NO_DSHOW_STRSAFE, before the line : #include "DShow.h"

        即:在D:Qtopencv3.4.0opencvsourcemodulesvideoiosrccap_dshow.cpp中,在#include “DShow.h“上一行中插入: #define NO_DSHOW_STRSAFE

        备注:参考地址:https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

    四、文件大小

      不同版本的OpenCV编译安装后的文件不同,3.4.0版本编译后750M

      使用2.4.13.3版本文件有1.98G。若需要裁剪倾向请参考如下博文:https://www.cnblogs.com/TooyLee/p/6438070.html

      备注:想生成目录结构到txt文件,可在cmd中转到某目录,输入tree /f > list.txt

       

    五、使用Qt 加载OpenCV配置

      ①环境变量添加D:Qtopencvbuild3.40installx86mingwin

      ②打开Qt Creator新建项目(非Qt项目,纯C++应用),命名为OpenCV后,打开OpenCV.pro文件,添加如下语句:

      INCLUDEPATH += D:Qtopencvbuild3.40installinclude

      LIBS += -L D:Qtopencvbuild3.40installx86mingwinlibopencv_*.dll

      LIBS += -L D:Qtopencvbuild3.40installx86mingwliblibopencv_*.a

      ③右击项目文件OpenCV文件夹,选择“执行qmake“编译后即可。

    六、测试示例程序 

     1 #include <iostream>
     2 #include <opencv2/core/core.hpp>
     3 #include <opencv2/highgui/highgui.hpp>
     4 using namespace cv;
     5 using namespace std;
     6 int main()
     7 {
     8     cv::Mat image;
     9     std::cout << "This image is " << image.rows << " x " << image.cols << std::endl;
    10     //绝对路径+图片名称
    11     image = cv::imread("E:\QT Project\OpenCV\rose.png");
    12     if (image.empty())
    13     {
    14         std::cout << "Can’t loading images. " << std::endl;
    15      return -1;
    16     }
    17     cv::namedWindow("Original Image");
    18     cv::imshow("Original Image", image);
    19     cv::waitKey(0);
    20     return 0;
    21 }
    加载图片测试代码段

  • 相关阅读:
    linux下mysql基于mycat做主从复制和读写分离之基础篇
    HttpClient之基本使用
    查阅资料学习的书签(补充中.......)
    java架构《Socket网络编程基础篇》
    Redis常见配置文件详解
    redis学习教程五《管道、分区》
    redis学习教程四《管理、备份、客户端连接》
    js将json数组转成tree对象
    小程序转发事件生命周期
    mpvue开发小程序添加页面
  • 原文地址:https://www.cnblogs.com/Shuqing-cxw/p/8577336.html
Copyright © 2020-2023  润新知