Windows+QtCreater+Opencv环境配置(成功运行)

不得不说,这个过程踩的坑实在是太多了,今天把这个写下来,以做备用。

目录

一、下载准备

1.QtCreater

2.Opencv

3.cmake

二、软件环境安装

1.Cmake安装

①安装过程一路next,除非自己指定安装路径以及环境变量路径,这里就直接让软件自己默认安装以及添加环境变量路径。

2.opencv安装

①指定Opencv安装路径

②进行安装

③安装完成

3.Qtcreater/Qt安装

 ①打开软件

② skip

③记录安装位置 

④勾选Qt安装选项

⑤QtTools选项

⑥同意选项

⑦进行安装

⑧环境变量配置

三、编译Opencv(重头戏)

1.打开cmake(最好每次先清除下cache)

2.在刚才的Opencv解压根目录下创建opencv_build文件夹。(具体名称个人定,但尽量不要有中文)

3.cmake中指定opencv源码目录以及输出目录(刚才创建好的文件夹)

4.点击configure,首次配置编译方式 

5.指定编译

6.finish编译

7.更改编译设置

①勾选WITH_QT和WITH_OPENGL

②填写QT5目录

③关闭python选项

④取消OPENCV_ENABLE_ALLOCATOR_STATS

⑤更改发布版本

8.再次编译

9.生成

10.关闭cmake

11.cmd进入刚创建opencv输出目录下

12.根据核心线程编译

13.漫长等待

14.编译完成

15.install 安装

16.添加环境变量

 四、Qt启动

1.新建项目

2.选择MinGw

3.生成项目

4.修改.pro项目文件

5.添加opencv程序

 6.release运行


一、下载准备

1.QtCreater

这里我是通过清华镜像源下载的,具体版本为:

- - Qt5.9.89(32bit)

- - QtCreater4.8.2

清华镜像源Qt下载网址

下载界面如下:

Windows+QtCreater+Opencv环境配置(成功运行)_第1张图片

下载这个之后,默认是Qt5.9.8+QtCreater4.8.2,安装过程在后面。

在这里疑惑过一段时间,是关于32bit与64bit的问题。因为在我的mac本上,我默认安装的是X64的安装包,之前编译的Opencv也是默认编译的x64,所以按照一般的帖子,只要把环境路径往QtCreater的pro文件那么一填,就能够成功运行。但是隔天我到windows的电脑上这样操作就不行,网上windows->qt一般全是32位,那么qt中的mingw安装也是32位的,而Opencv下载之后,预编译版本只有64位的,这就可能造成Opencv的库文件不能进行调用的情况(我是出现了错误,但不确定是否是因为这个情况)。所以就需要用32位的mingw去进行编译,生成32位版的opencv连接库,那么就可以和Qt中的32位配套了。

2.Opencv

这里建议Opencv的版本不要过高,我选择的是Opencv4.4版本。

Opencv下载地址

下载界面如下:

Windows+QtCreater+Opencv环境配置(成功运行)_第2张图片

 在Opencv官网中,推荐的安装方式有两种,一个是预编译版本的,一个是自编译版本的,我们下载的属于是预编译版本的,里面文件将将涵盖编译好的build文件与source源文件,在build文件家中有x64的lib,dll文件供调用,对于一般的vs+Opencv开发,这个就够了,只需要将Opencv的环境配置以下,以及vs软件的库索引、lib连接加载以下就ok,这个网上很多,一般也都能配置成功,不再多说。

3.cmake

我们用Cmake的目的是将Opencv的源文件写成Makefile文件,告诉mingw怎么去编译它。整个过程比较复杂,比自己手写CmakeLists.txt要方便许多,这一步也是必须的。

下载的时候,尽量下载较新的版本,因为低版本的cmake可能会在某一个过程中不受支持而导致整个项目失败。

Cmake下载链接

Windows+QtCreater+Opencv环境配置(成功运行)_第3张图片

这里为了保险,暂时也下载32位的。

到这里,安装包准备完毕。

二、软件环境安装

整个过程在干净的虚拟机中进行操作。

1.Cmake安装

①安装过程一路next,除非自己指定安装路径以及环境变量路径,这里就直接让软件自己默认安装以及添加环境变量路径。

        

Windows+QtCreater+Opencv环境配置(成功运行)_第4张图片

Windows+QtCreater+Opencv环境配置(成功运行)_第5张图片

安装成功后,可以看到环境变量中已经存在了cmake的环境变量。

Windows+QtCreater+Opencv环境配置(成功运行)_第6张图片

2.opencv安装

①指定Opencv安装路径

②进行安装

Windows+QtCreater+Opencv环境配置(成功运行)_第7张图片

③安装完成

Windows+QtCreater+Opencv环境配置(成功运行)_第8张图片

3.Qtcreater/Qt安装

 ①打开软件

Windows+QtCreater+Opencv环境配置(成功运行)_第9张图片

② skip

Windows+QtCreater+Opencv环境配置(成功运行)_第10张图片

③记录安装位置 

Windows+QtCreater+Opencv环境配置(成功运行)_第11张图片

④勾选Qt安装选项

MinGW 5.3.0 32-bit 以及所有的Qt选项

Windows+QtCreater+Opencv环境配置(成功运行)_第12张图片

⑤QtTools选项

主要勾选MinGw

Windows+QtCreater+Opencv环境配置(成功运行)_第13张图片

⑥同意选项

Windows+QtCreater+Opencv环境配置(成功运行)_第14张图片

⑦进行安装

等待时间较长。

Windows+QtCreater+Opencv环境配置(成功运行)_第15张图片

很棒,99%卡着了:

Windows+QtCreater+Opencv环境配置(成功运行)_第16张图片

安装完成

Windows+QtCreater+Opencv环境配置(成功运行)_第17张图片

⑧环境变量配置

找到刚安装的QT目录下的路径:C:\Qt\Qt5.9.8\Tools\mingw530_32\bin,添加到环境变量中。

Windows+QtCreater+Opencv环境配置(成功运行)_第18张图片

三、编译Opencv(重头戏)

这个过程比较扯,很多次都死到这个地方,需要注意下。

1.打开cmake(最好每次先清除下cache)

Windows+QtCreater+Opencv环境配置(成功运行)_第19张图片

2.在刚才的Opencv解压根目录下创建opencv_build文件夹。(具体名称个人定,但尽量不要有中文)

Windows+QtCreater+Opencv环境配置(成功运行)_第20张图片

3.cmake中指定opencv源码目录以及输出目录(刚才创建好的文件夹)

源码目录:C:/opencv/opencv/sources

输出目录:C:/opencv/opencv/opencv_build

Windows+QtCreater+Opencv环境配置(成功运行)_第21张图片

4.点击configure,首次配置编译方式 

这个一定要按这个方式来配!

MinGW Makefiles + Specify native compilers

这个生成好本地makefile之后,我们会用QT自带的32位的mingw去编译。

Windows+QtCreater+Opencv环境配置(成功运行)_第22张图片

5.指定编译

Windows+QtCreater+Opencv环境配置(成功运行)_第23张图片

编译器的路径在刚才安装好的Qt中,下面是我的目录:

gcc.exe: C:/Qt/Qt5.9.8/Tools/mingw530_32/bin/gcc.exe

g++.exe:C:/Qt/Qt5.9.8/Tools/mingw530_32/bin/g++.exe

6.finish编译

Windows+QtCreater+Opencv环境配置(成功运行)_第24张图片

此时,是在编译过程中的,时间较长,等待结束。

此过程,全程应该是正常的,不应有报错红字出现,如果有,注意排查问题。

7.更改编译设置

等待上步结束,执行以下操作:

①勾选WITH_QT和WITH_OPENGL

Windows+QtCreater+Opencv环境配置(成功运行)_第25张图片

点击configure编译一遍。

②填写QT5目录

上步编译后,将出现错误:

Windows+QtCreater+Opencv环境配置(成功运行)_第26张图片

点击确定,填写QT5目录:

我的QT5的目录为:C:/Qt/Qt5.9.8/5.9.8/mingw53_32/lib/cmake/Qt5

这里建议点击按钮进行路径选择,不要直接复制,以免引起不必要的麻烦。

Windows+QtCreater+Opencv环境配置(成功运行)_第27张图片

③关闭python选项

Windows+QtCreater+Opencv环境配置(成功运行)_第28张图片

这个步骤是在试错了无数次后,发现的问题,尽管有时候可以添加python2,python3的路径,但是在最后的阶段,总会报出 can't find "all"之类的错误,这里直接将Python取消勾选。

④取消OPENCV_ENABLE_ALLOCATOR_STATS

搜索:OPENCV_ENABLE_ALLOCATOR_STATS,取消勾选

Windows+QtCreater+Opencv环境配置(成功运行)_第29张图片

⑤更改发布版本

 搜索:MAKE_BUILD_TYPE,改为release

Windows+QtCreater+Opencv环境配置(成功运行)_第30张图片

8.再次编译

点击configure 再次编译。

9.生成

编译完成后,点击生成

Windows+QtCreater+Opencv环境配置(成功运行)_第31张图片

10.关闭cmake

出现如下界面,cmake的任务就结束了,关闭cmake

Windows+QtCreater+Opencv环境配置(成功运行)_第32张图片

11.cmd进入刚创建opencv输出目录下

Windows+QtCreater+Opencv环境配置(成功运行)_第33张图片

12.根据核心线程编译

mingw32-make -j [+线程数] 

根据自身电脑线程数进行更改,提升速度,我的是虚拟机,只有2。

Windows+QtCreater+Opencv环境配置(成功运行)_第34张图片

13.漫长等待

这个过程中,如果短暂卡住停滞了,按下回车确定。

14.编译完成

Windows+QtCreater+Opencv环境配置(成功运行)_第35张图片

15.install 安装

mingw32-make install 

Windows+QtCreater+Opencv环境配置(成功运行)_第36张图片

16.添加环境变量

将编译完成后的bin目录进行添加,我的目录是:C:\opencv\opencv\opencv_build\install\x64\mingw\bin

Windows+QtCreater+Opencv环境配置(成功运行)_第37张图片

 四、Qt启动

1.新建项目

Windows+QtCreater+Opencv环境配置(成功运行)_第38张图片

Windows+QtCreater+Opencv环境配置(成功运行)_第39张图片

2.选择MinGw

Windows+QtCreater+Opencv环境配置(成功运行)_第40张图片

3.生成项目

Windows+QtCreater+Opencv环境配置(成功运行)_第41张图片

4.修改.pro项目文件

添加路径,具体路径根据自己安装目录进行修改。

INCLUDEPATH += C:\opencv\opencv\opencv_build\install\include
INCLUDEPATH += C:\opencv\opencv\opencv_build\install\include\opencv2

LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_core440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_highgui440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_imgcodecs440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_imgproc440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_features2d440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_calib3d440.dll

Windows+QtCreater+Opencv环境配置(成功运行)_第42张图片

5.添加opencv程序

将mainwindow.cpp修改至如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include 
#include 

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // read an image
    cv::Mat image = cv::imread("C:/1.jpg", 1);
    // create image window named "My Image"
    cv::namedWindow("My Image");
    // show the image on window
    cv::imshow("My Image", image);
}

MainWindow::~MainWindow()
{
    delete ui;
}

 6.release运行

Windows+QtCreater+Opencv环境配置(成功运行)_第43张图片

 大功告成!


 整个过程比较艰辛,绝大部分原因是自己对编译理解不到位,以至于现在我仍旧是不懂:最终目标我才用的是32bit编译,但是opencv仍出现的是x64的安装目录,但好在还是运行成功了。像刚开始所说,我mac本的x64是直接能用的,但是换到windows上x64的opencv dll文件使用起来是有问题的,所以才有了这整个过程,如果你的能够直接使用,不用这么麻烦,那么是再好不过了。

整体来说是能用了,但遗留了一个问题,为什么编译出来的Opencv,install之后仍是x64,而不是x86呢?

你可能感兴趣的:(环境依赖配置,qt,windows,opencv,c++,计算机视觉)