windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0

1. 环境

(1) Windows 10  64bit

(2) Qt5.6.2, 安装路径:C:\Qt\Qt5.6.2\....,如下图所示:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第1张图片

(4) Cmake 3.9.0-rc5

2. 准备源代码

(1) opencv: https://github.com/opencv/opencv/tree/3.4.0

(2) opencv_contrib module: https://github.com/opencv/opencv_contrib/tree/3.4.0

3. 有效的Tips

(1) 保持Cmake运行,直到opencv和opencv_contrib编译完成

(2) 勾选Cmake中的"group"和“Advanced”选项,能够看到全部的配置信息

(3) 配置系统环境变量,如下图所示:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第2张图片

(4) 请务必先整篇阅读后开始操作

 

3. 安装步骤

(1) cmake配置

(1.1) 源文件配置和目标文件的路径

(1.2) 点击"configure" ,配置编译器,如下图我们利用QT的mingw编译器进行编译

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第3张图片

点击"Next", 如下图所示: 分别配置gcc和g++编译器: 路径分别为(C:/Qt/Qt5.6.2/Tools/mingw492_32/bin/gcc.exe和C:/Qt/Qt5.6.2/Tools/mingw492_32/bin/g++.exe)

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第4张图片

(1.3) 第二次点击"configure", 会显示如下图的界面,此时会下载一些库文件,请保持稳定的网络

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第5张图片

(1.4) 当完成前述步骤时,需要完成以下勾选:

(A) 展开“With”选项,勾选“With_QT”和“With_OpenGL”,如下图所示:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第6张图片

(B) 展开"Enable"选项, 取消"ENABLE_PRECOMPILED_HEADERS",如下图所示:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第7张图片

同时需要修改“cap_Dshow.cpp”的文件,修改是在“#include "cap_dshow.hpp”前加宏定义“#define NO_DSHOW_STRSAFE”,如下图所示:


(C) 展开“OPENCV”, 配置opencv_contrib的文件路径,如下图所示,注意路径一定要到“modules”文件夹

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第8张图片

(1.4) 第三次点击"configure",会显示一些错误,与有关QT和OpenGL的一些错误,完成如下配置:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第9张图片

(1.5) 第四次点击“Configure”,此时应该能够正确配置:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第10张图片

(1.6) 如果显示"Configuring done",此时,点击"Generate",直到显示"Generating done"

(2) cmd界面切入目录: mingw32-make,等待编译即可,正确编译截图如下:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第11张图片

(3) mingw32-install ,等待即可,正确执行则如下图所示:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第12张图片

(5) qt中使用配置, 将“C:/opencv-3.4.0/build/install"、"C/opencv-3.4.0/build/bin"、“C:/opencv-3.4.0/build/lib”拷贝出来,即为可使用的静态库和动态库; 假设我们拷贝到了如下路径下:“C:/opencv-3.4.0/release/install”、“C:/opencv-3.4.0/release/bin”、“C:/opencv-3.4.0/release/lib”,那么,在QT的.pro文件中配置如下:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第13张图片

(6) 将动态连接库的路径加入系统环境变量Path中,如下图所示,重启电脑,即可。

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第14张图片

(7) 测试

#include 
#include 
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{
    string inputName = "cat.jpg";
    Mat img = imread(inputName);
    imshow("img", img);
    waitKey(0);

    return 0;
}
效果如下:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第15张图片

(8) 特别说明:

在我的编译过程中,出现编译“C:\opencv-3.4.0\opencv-3.4.0\modules\python\python3”不通过的问题,如下图所示:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第16张图片

我的解决方法是: 将“BUILD"选项中的Build_opencv_python3取消勾选, 如下图所示:

windows下cmake + qt + mingw编译opencv3.4.0和opencv_contrib3.4.0_第17张图片

如果想要尝试,也可以先不勾选,进行编译,如果能够通过更好(并将方法告诉我); 如果不能通过,可以在Cmake中重新配置,注意,此时不要将“C:\opencv3.4.0\build”中的文件删除,只需重新配置,点击“configure”,然后直接在cmd中直接执行“cmake-make”即可,其他类似的错误可以按照相同的方法处理。

你可能感兴趣的:(opencv函数学习,c++)