一、OpenCV下载

官网:
https://opencv.org/releases 版本:
OpenCV-3.4.9(我用的版本)—选择Windows–自动开始下载.exe(opencv-3.4.9-vc14_vc15.exe)

安装步骤
1、将opencv-3.4.9-vc14_vc15.exe放在D盘

opencv各版本间差异 opencv 5.0_opencv各版本间差异


2、双击运行解压opencv-3.4.9-vc14_vc15.exe 此时会得到我图中被红色方框框选的build、sources两个文件。

opencv各版本间差异 opencv 5.0_opencv各版本间差异_02

 build文件:该文件为编译后Windows环境下编译好的可执行文件
sources文件:该文件为未编译过的源代码,要想在QT中运行opencv需要重新编译该文件里的代码(所以这时候就需要用前面下载好的CMake来重新编译opencv源码)

3、cmake配置opencv
(1)打开电脑上的CMake编译器cmake-gui.exe

opencv各版本间差异 opencv 5.0_OpenCV_03


(2)将opencv中的sources文件添加进来

where is the souce code:选择解压后OpenCV目录下的sources文件夹

where is build the binaries:在解压后OpenCV目录下新建一个名为rebuild_for_qt的文件夹(此文件夹命名可随自己心意,用于存放编译后的代码)

opencv各版本间差异 opencv 5.0_opencv各版本间差异_04


(3)点击configure开始配置

在弹出的界面中:

(a)Specify the generator for the project中选择:MinGw makefiles

(b)再选择:Specify native compilers

(c)点击next

在弹出的界面中

(a)C:选择QT路径下的GCC

即:D:/QTCreator_Windows/Tools/mingw730_64/bin/gcc.exe

(b)C++:选择QT路径下的G++

即:D:/QTCreator_Windows/Tools/mingw730_64/bin/g++.exe

opencv各版本间差异 opencv 5.0_opencv各版本间差异_05


(c)点击Finish开始配置

(4) 配置好出现Configuring done

(5)再次修改配置
ENABLE_CXX11(勾选)
WITH_OPENGL(勾选)
WITH_QT(勾选)
WITH_IPP(不勾选)
其他选择默认即可
(6)再次点击Configure
(7)再一次点击Configure
(8)然后选中Name下的CMAKE_CONFIGURATION_TYPES,将后面Value下的Debug给删除掉,只留下Release即可

(9)再次点击Configure

(10)此时可以发现在configure过程中出现了红色的警告文字。此时进入OpenCV解压目录下所创建rebuild_for_qt文件夹,打开其中的CMakeDownloadLog.txt文本文件。

从文件中可以看出,此时文件夹缺少三个文件,opencv_ffmpeg.dll、opencv_ffmpeg_64.dll和ffmpeg_version.cmake。可以点击文件中的网址,自行下载

opencv各版本间差异 opencv 5.0_opencv_06

(11)下载好上面3个文件之后,将3个文件以MD5命名方式(前面已经讲过)存入到 所解压OpenCV文件夹中sources/.cache/ffmpeg路径下。

(12)在CMake中点击Configure即可,成功之后点击generate

 4、编译安装opencv

(1)打开电脑CMD窗口,并进入所创建rebuild_for_qt文件夹

>>D:
>>cd D:\Academic_Application\OpenCV3.4.9\opencv\rebuild_for_qt

(2)输入命令编译OpenCV

mingw32-make -j 16

(3)编译完成后,输入命令下载库文件

mingw32-make instal

(4)添加新的opencv环境到PATH中 

opencv各版本间差异 opencv 5.0_opencv_07

 (5)在系统变量中创建一个新的变量,命名和路径设置如下所示。

opencv各版本间差异 opencv 5.0_opencv各版本间差异_08

注意!!!

在OpenCV编译过程中,可能在编译到35%左右的时候出现报错,内容涉及core文件,解决方法为:

在cmake gui中添加条目OPENCV_VS_VERSIONINFO_SKIP = 1,再重新Configure,Generate后,在cmd窗口中mingw32-make即可继续编译