opencv+QT+cmake

来源:互联网 发布:淘宝店怎么引来流量 编辑:程序博客网 时间:2024/05/16 12:41

网上有很多opencv、qt、cmake的配置,有的朋友说好像不用cmake都能在qt上用opencv,但自己还是试试怎么搞,结果还是搞了很久。下面说说过程。

1、这个过程参考了一下两个blog

1. 这位blog主的过程很详细 [OpenCV] -- win7下配置OpenCV的Qt开发环境

2. 过程会出现一些问题,可以参考这位blog主的 Win7下qt5.3.1+opencv2.4.9编译环境的搭建

 

2、要下载3个东西

1. opencv

2. qt     要把qt的bin添加到系统环境path里面

3. cmake  选择这个binary distributors,我是选择.exe下载的,安装的时候选那个要all user ***什么的

3、上面3个软件解压的要解压,安装的要先安装,QT的PATH要搞好

4、打开cmake

where is the source code 选择opencvsource那个文件夹

where to build the binarier选择你上新编译生成的文件夹

然后configure一下,选择MinGW makefiles,下面那个不动use default native compilers

再configure一下,勾选生成列表中的WITH_OPENGL和WITH_QT。我一开始生成的只有两个东西,那是我之前QT的PATH没搞好。

再configure,还是会报错,然后参照Win7下qt5.3.1+opencv2.4.9编译环境的搭建

QT_QMAKE_EXECUTABLE        Value*****/Qt/*****/mingw482_32/bin/qmake.exe

Qt5Concurrent_DIR                                   *****/Qt/*****/mingw482_32/lib/cmake/Qt5Concurrent

Qt5Core_DIRC                                           *****/Qt/*****/mingw482_32/lib/cmake/Qt5Core

Qt5Gui_DIR                                               *****/Qt/*****/mingw482_32/lib/cmake/Qt5Gui

Qt5Test_DIR                                             *****/Qt/*****/mingw482_32/lib/cmake/Qt5Test

Qt5Widgets_DIR                                     *****/Qt/*****/mingw482_32/lib/cmake/Qt5Widgets

Qt5OpenGL_DIR                                    *****/Qt/*****/mingw482_32/lib/cmake/Qt5OpenGL

再configure   然后就可以generate了

 

generate成功,下面会写generate  done的

5、可以关闭cmake

run cmd

然后到cd 到你build the binarier的文件夹(可以不再c盘,要先到所在的盘如输入d:)

输入mingw32-make命令开始编译,慢慢等吧

然后执行 mingw32-make install

6、到build the binarier的文件夹的文件里面,保留bin和lib,并把bin添加到系统环境PATH上面

然后把本来opencv里面的build/include复制到这个文件里面(不是source里面的include啊)

其的都删了吧

7、打开QT

在pro文件里写这些(话说为什么粘贴代码这么不好看勒),参考的是 [OpenCV] -- win7下配置OpenCV的Qt开发环境(当然整个过程就是参照他的)

INCLUDEPATH+= D:\program\opencv\include\

              D:\program\opencv\include\opencv\
              D:\program\opencv\include\opencv2
LIBS+=D:\program\opencv\lib\libopencv_calib3d2410.dll.a\
      D:\program\opencv\lib\libopencv_contrib2410.dll.a\
      D:\program\opencv\lib\libopencv_core2410.dll.a\
      D:\program\opencv\lib\libopencv_features2d2410.dll.a\
      D:\program\opencv\lib\libopencv_flann2410.dll.a\
      D:\program\opencv\lib\libopencv_gpu2410.dll.a\
      D:\program\opencv\lib\libopencv_highgui2410.dll.a\
      D:\program\opencv\lib\libopencv_imgproc2410.dll.a\
      D:\program\opencv\lib\libopencv_legacy2410.dll.a\
      D:\program\opencv\lib\libopencv_ml2410.dll.a\
      D:\program\opencv\lib\libopencv_objdetect2410.dll.a\
      D:\program\opencv\lib\libopencv_video2410.dll.a

 

我也试过以下简短的方式,不过不行。

INCLUDEPATH+=C:\OpenCV\include\opencv\

                    C:\OpenCV\include\opencv2\

                    C:\OpenCV\include

LIBS+=C:\OpenCV\lib

用下面这个测试一下,成功的话会显示一副图像

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>
int main() {
    // read an image
    cv::Mat image= cv::imread("D:/program/QT/2015.2.26/boldt.jpg");
    // create image window named "My Image"
    cv::namedWindow("My Image");
    // show the image on window
    cv::imshow("My Image", image);
    // wait key for 5000 ms
    cv::waitKey(5000);
    return 1;
}
0 0
原创粉丝点击