QT5.5.0 + opencv3.0 环境搭建

环境:

windows : win10 64bit

opencv: opencv 3.0

cmake: cmake-3.11.1-win32-x86

QT: QT 5.5.0

1、cmake安装

安装完Cmkae,并安装设置为 for all users。

2、添加系统环境变量

添加系统环境变量 

(1)、  D:\Qt\Qt5.5.0\Tools\mingw492_32\bin

(2)、D:\Qt\Qt5.5.0\Tools\mingw492_32\i686-w64-mingw32\lib

(3)、D:\Qt\Qt5.5.0\5.5\mingw492_32\bin      

否则会出现如下错误:                                                               

CMake Error at C:/Program Files (x86)/CMake 3.11/share/cmake-3.11/Modules/FindQt4.cmake:1382 (message):
  Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
Call Stack (most recent call first):
  CMakeLists.txt:13 (FIND_PACKAGE)

3、打开cmake-gui.exe并配置

       1)source code: E:\Work_station\opencv\opencv\sources

          where to build the binaries:  E:\Work_station\opencv\opencv\qt_build

       2)点击 configure 

          选择 MinGW Makefiles 和 Specify native compilers, 点击next

          C:D:\Qt\Qt5.5.0\Tools\mingw492_32\bin\gcc.exe

          C++:D:\Qt\Qt5.5.0\Tools\mingw492_32\bin\g++.exe

          最后一个空着,点击finish

    3)在搜索框依次查找WITH_QT, WITH_TBB, WITH_IPP, WITH_CUDA, CMAKE_BUILD_TYPE,确保

            WITH_QT -  选中.

           WITH_TBB, WITH_IPP, WITH_CUDA -  不选

          CMAKE_BUILD_TYPE - 点击并输入Debug              

   4) 点击configure,done后点击generate,关闭CMake

4、 编译

   

          •         进入cmd,切换到  E:\Work_station\opencv\opencv\qt_build目录

输入mingw32-make

可能错误:

modules\videoio\CMakeFiles\opencv_videoio.dir\build.make:187: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj' failed
mingw32-make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj] Error 1
CMakeFiles\Makefile2:2867: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/all' failed
mingw32-make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
Makefile:161: recipe for target 'all' failed

解决办法:

cap_dshow.cpp 文件中#include "precomp.hpp"后添加

#define STRSAFE_NO_DEPRECATE   并 使用#注释掉OpenCVCompilerOptions.cmake文件中

的 add_extra_compiler_option(-Werror=non-virtual-dtor) 。

5、添加环境变量

 将D:\Qt\Qt5.5.0\Tools\QtCreator\bin加入系统环境变量

6、拷贝QT工程所需要的文件

 1)、拷贝原win编译下的build文件夹下的include文件夹(包含opencv和opencv2)到out_file;

2)、拷贝qt_build文件夹下的lib和bin文件夹到out_file。

(备注: 即out_file文件夹下最终有三个文件夹)

7、QT项目中pro配置(pro文件末尾添加)

INCLUDEPATH+=E:\Work_station\opencv\opencv\out_file\include\
             E:\Work_station\opencv\opencv\out_file\include\opencv\
              E:\Work_station\opencv\opencv\out_file\include\opencv2

LIBS+=E:\Work_station\opencv\opencv\out_file\lib\libopencv_videostab300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_stitching300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_calib3d300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_features2d300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_superres300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_objdetect300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_shape300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_imgcodecs300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_video300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_core300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_imgproc300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_videoio300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_flann300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_highgui300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_photo300d.dll.a\
E:\Work_station\opencv\opencv\out_file\lib\libopencv_ml300d.dll.a

8、测试程序

#include "mainwindow.h"
#include 

#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui/highgui.hpp"

#include 

using namespace cv;
using namespace std;

int main(int argc, char *argv[])
{
      Mat src_image;
      src_image = imread("F:\\lena.jpg", IMREAD_COLOR);
      if (src_image.empty())
         return -1;
       imshow("src_image", src_image);
       waitKey(0);
       return 0;
}

错误1 :在编写完步骤8 的程序后,测试时,一直提示 imread函数undefined。但是实际头文件也是包含的。

解决办法: 添加的LIB不完整。最后补全就好。

错误2 :运行代码时,提示 qt opencv 程序异常结束

解决办法: 

1)、首先确保你把你qt编译器下的所有bin目录添加到了系统的path环境中; 

2)、把你编译好的opencv目录下的bin目录添加到系统的path环境中; 

3)、这个时候重新编译你的代码,如果不行,那就关机再试一次,绝对可以的。

参考链接:

https://blog.csdn.net/combfish/article/details/21445847

https://blog.csdn.net/qq_21078557/article/details/78962135







你可能感兴趣的:(OpenCv)