win7_64上qt5.4.1+opencv2.4.10 +cmake3.2.1环境搭建 (有添加说明)

             win7_64上qt5.4.1+opencv2.4.10 +cmake3.2.1环境搭建 

参考了以下几篇文章:

     

[OpenCV] -- win7下配置OpenCV的Qt开发环境 (基本上是按照这篇文章来做的)


       win7上qt5.1.1 opencv2.4.7 cmake2.8.12.1环境搭建(关键在环境变量) 

   Win7下qt5.3.1+opencv2.4.9编译环境的搭建

    Win7_64位_Qt5.2_CMake2.8编译OpenCV2.4.6

 直接把第一篇文章搬过来的,根据自己的情况添加了一些说明 



下载所需工具

(1)Qt Creator 下载地址http://qt-project.org 

    (建议下载最新版本,因为里面带的MinGW版本较高)

2OpenCV 下载地址http://opencv.org/

  (不建议下载最新版本,最新版本的编译需要高版本的MinGW,不然在执行mingw32-make命令会报错)

3CMake 下载地址http://www.cmake.org/cmake/resources/software.html

 于2015-3-26下载了以下版本:

qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe

opencv-2.4.10.exe

cmake-3.2.1-win32-x86.exe

安装Qt Creator选择默认,一直下一步就OK

安装OpenCV,设置解压路径就OK

安装CMake (注意:(1安装路径不能有中文和空格2勾选加入所有境变量中

目前最新的OpenCV版本,安装之后的目录下面有源码和个版本的libdll,不过为避免出现问题,还是自己编 

  译

G:\Qt\Qt5.4.1\5.4\mingw491_32\bin加入系统的Path环境变量(我的Qt Creator安装在G盘

   关于环境变量其实还有一些需要添加,不然编译过程会出现找不到某某文件,需要停下来重新增加环境变量,后面过程有提到这一说明

打开CMake,使用CMake编译OpenCV。配置源码路径与生成的目标路径

(1)源码路径:要选择OpenCV安装目录下含有如下文件dataplatforms的文件夹sources ,在opencv安装目录的第一级目录            

                即选择目录G:\opencv\sources

                

      (2)目标路径:编译后库文件所存放的目录可以随意设置,选择了G:\opencv

        

                 后来发现编译后会多出来许多文件夹,其实这里可以自己创建一个文件夹,并选择安放于此文件夹比较合适

点击Configure配置按钮。在弹出的对话框中选择MinGW makefiles其余选项保持默认,点击Finish按钮,开始编译

             这里有看到选择第二个的指定本地的编译器,会弹出一个对话框,选择了本地QT的bin目录下的gcc与g++编译器。

              在参考的第3篇文章中用的就是此方法,我并没与选择此方法。


9 CMake编译结束界面如下图,勾选生成列表中的WITH_OPENGLWITH_QT两项,其他项最好不要改动



10 再次点击Configure按钮 



特别要说明的是:在进行这一步时出现了上图所示错误

    Could not find a package configuration file provided by "Qt5Core" with any  of the following names:
       Qt5CoreConfig.cmake
       qt5core-config.cmake

 在博客jiebaoabcabc的专栏(http://blog.csdn.net/jiebaoabcabc/article/details/17097765)找到解决方案:

在QT安装目录下查找到了该文件,将其路径添加到环境变量中;其他找不到配置文件的也是采取了相同办法,最后环境变量添加了很多,如下所示:


所添加的环境变量:

G:\CCmake\CMake\bin;G:\Qt\Qt5.4.1\Tools\mingw491_32\bin;

G:\Qt\Qt5.4.1\5.4\mingw491_32\bin;

G:\Qt\Qt5.4.1\Tools\mingw491_32\i686-w64-mingw32\lib;

G:\Qt\Qt5.4.1\5.4\mingw491_32\lib\cmake;G:\Qt\Qt5.4.1\5.4\mingw491_32\lib\cmake\Qt5Concurrent;

G:\Qt\Qt5.4.1\5.4\mingw491_32\lib\cmake\Qt5Core;

G:\Qt\Qt5.4.1\5.4\mingw491_32\lib\cmake\Qt5Gui;

G:\Qt\Qt5.4.1\5.4\mingw491_32\lib\cmake\Qt5Widgets;

G:\Qt\Qt5.4.1\5.4\mingw491_32\lib\cmake\Qt5Test;

    G:\Qt\Qt5.4.1\5.4\mingw491_32\lib\cmake\Qt5Concurrent

然后再次点Configure按钮 ,ok

11 点击Generate按钮,生成makefile文件,成功后,底下会提示Generating done

    注意到此时并没有错误出现,有一些红色的警告

12 打开cmd,进入刚才设置的目标路径(G:\OpenCV,输入mingw32-make命令开始编译

   命令是cd /d  G:/opencv 注意/d不要漏掉

   这一步用时很长,我是18:20开始编译,到19:48才结束。我的ThinkPad E40上耗时1h24min 

   一篇文章建议关掉杀毒软件可能会快些,我并没有关掉。



13 漫长的编译过程完成后,执行命令mingw32-make install,用时2分钟左右


14 下面开始配置Qt CreatorOpenCV开发环境,拷贝下面三个文件夹放在同一个文件夹下

只需这三个目录,  其余生成的文件和文件夹可以删除,以节省磁盘空间,看了下opencv整个文件夹的大小是5.72G

          所需要的文件夹      

                                    1.OpenCV-2.4.10安装目录下的build/include目录

                                    2.CMake目标路径下,MinGW编译后的bin目录

                                    3.CMake目标路径下,MinGW编译后的lib目录

          将这3个文件夹拷贝出来放到一起,然后其他的文件都可以删了。

  真的可以删除其他文件,不要担心会导致后面编译是否因为删除了这么多文件会出错。

具体的目录截图如下:

  1OpenCV-2.4.10安装目录下的build/include目录

               

  

(2)CMake目标路径下,MinGW编译后的bin目录


(3)CMake目标路径下,MinGW编译后的lib目录


 拷贝三个目录到同一目录后的结构如下图(我删除了原来的CMake目标目录中的其他目录,拷贝进来了include目录)这三个文件总大小是93.1M,相比原来5.72G小了很多。

 

15 MinGW编译后的bin目录添加到用户PATH环境变量

 

16 至此Qt Creator下的OpenCV开发环境已经配置好,下面在Qt Creator下测试是否已经配置成功

测试:

打开Qt Creator,新建一个空工程,然后添加一个cpp文件,任意命名在生成的pro文件中敲入

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

                           G:\OpenCV\include\opencv2\

                          G:\OpenCV\include

 

LIBS+=G:\OpenCV\lib\libopencv_calib3d2410.dll.a\

         G:\OpenCV\lib\libopencv_contrib2410.dll.a\

        G:\OpenCV\lib\libopencv_core2410.dll.a\

        G:\OpenCV\lib\libopencv_features2d2410.dll.a\

        G:\OpenCV\lib\libopencv_flann2410.dll.a\

        G:\OpenCV\lib\libopencv_gpu2410.dll.a\

        G:\OpenCV\lib\libopencv_highgui2410.dll.a\

        G:\OpenCV\lib\libopencv_imgproc2410.dll.a\

        G:\OpenCV\lib\libopencv_legacy2410.dll.a\

        G:\OpenCV\lib\libopencv_ml2410.dll.a\

        G:\OpenCV\lib\libopencv_objdetect2410.dll.a\

简单测试一个显示图片的程序

 

#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main( )
{
     Mat image= imread("G:/xeno.jpg");
     namedWindow("Test Image");
     imshow("Test Image",image);
     waitKey();

     return 0;
}
运行效果如下



                                                                                                   

                                                                                   第二次编译2015.4.25

重装了一下系统,再次安装配置编译环境,还是按照之前的步骤一步一步来。

不同的是这次安装cmake,勾选的是只加入当前用户的环境变量并未选所有用户


cmake安装好后可以看到上面第一个的path变量多了一个值G:\CCmake\CMake\bin

如若选所有用户则会在下面一个框中的path变量多一个值G:\CCmake\CMake\bin

(7) .打开CMake,使用CMake编译OpenCV。配置源码路径与生成的目标路径

   源码路径:要选择OpenCV安装目录第一级目录的sources文件夹  G:\opencv\sources

   目标路径:可以随意设置

(8) 点击Configure配置按钮。在弹出的对话框中选择MinGW makefiles,其余选项保持默认,点击Finish按钮,

      开始编译,然后cmake就出错了,显示目录非法,但此目录并没有问题。

解决:重新卸载了cmake再次安装,并勾选加入所有境变量中,并在环境变量中加入了

G:\Qt\Qt5.4.1\Tools\mingw491_32\bin;

G:\Qt\Qt5.4.1\5.4\mingw491_32\bin;

G:\Qt\Qt5.4.1\Tools\mingw491_32\i686-w64-mingw32\lib

之所以加入这三个是在这篇文章(http://blog.csdn.net/jiebaoabcabc/article/details/17097765)看到这个说明:如果报错说是

没找到qt5xxx的就加这个路径加入到环境变量中,而之前的编译确实出现了这个问题:

Could not find a package configuration file provided by "Qt5Core" with any  of the following names:

       Qt5CoreConfig.cmake
       qt5core-config.cmake

当时解决方法在QT安装目录下查找到了这些找不到的文件,将其路径添加到环境变量中;

然后尝试将三个路径加入到环境变量,接下来编译果然不再报错,一切进行的很顺利

CMake编译结束界面如下图,勾选生成列表中的WITH_OPENGLWITH_QT两项,其他项最好不要改动

10 )再次点击Configure按钮,会出现如下画面,最前面有一些红色的项目,不管它,继续。


11 点击Generate按钮,生成makefile文件,成功后,底下会提示Generating done

      此时任然有红色警告。 仍然不管。


  

        这时如果去看看opencv文件夹的内容会发现多出了很多东西:原来只有两个文件夹buildsources


12 打开cmd,进入刚才设置的目标路径(G:\OpenCV,输入mingw32-make命令开始编译

       命令是cd /d  G:/opencv 注意/d不要漏掉

       然后会出现如下界面:

       cd /d  G:/opencv 

       mingw32-make

                        这一次我是21:15开始编译,到22:11结束。我的ThinkPad E40上耗时一个小时,比上次少了大概半个小时。


(13 漫长的编译过程完成后,执行命令mingw32-make install,用时2分钟左右

     

 

(14 下面开始配置Qt CreatorOpenCV开发环境,拷贝下面三个文件夹放在同一个文件夹下(只需这三个目录, 其余生成的文件和文件夹可以删除,以节省磁盘空间,看了下opencv整个文件夹的大小是5.72G

          所需要的文件夹       1.OpenCV-2.4.10安装目录下的build/include目录

                                    2.CMake目标路径下,MinGW编译后的bin目录

                                    3.CMake目标路径下,MinGW编译后的lib目录

          将这3个文件夹拷贝出来放到一起,然后其他的文件都可以删了。

     将原来的opencv文件夹改名为opencv10(这样删除比较方便),然后新建一个opencv文件夹,并拷贝三个选定的目录文件到新建的opencv文件夹中。 然后将几个G大小的opencv10文件夹删除掉,只留下了一个大小只有92.7MB的文件夹opencv


       

   (15 MinGW编译后的bin目录添加到用户PATH环境变量  G:\opencv\bin

       

16 至此Qt Creator下的OpenCV开发环境已经配置好,下面在Qt Creator下测试是否已经配置成功

 17) 打开Qt Creator,新建一个空工程,然后添加一个cpp文件,任意命名,在生成的pro文件中敲入

 

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

                    G:\OpenCV\include\opencv2\

                    G:\OpenCV\include

 

LIBS+=G:\OpenCV\lib\libopencv_calib3d2410.dll.a\

        G:\OpenCV\lib\libopencv_contrib2410.dll.a\

        G:\OpenCV\lib\libopencv_core2410.dll.a\

        G:\OpenCV\lib\libopencv_features2d2410.dll.a\

        G:\OpenCV\lib\libopencv_flann2410.dll.a\

        G:\OpenCV\lib\libopencv_gpu2410.dll.a\

        G:\OpenCV\lib\libopencv_highgui2410.dll.a\

        G:\OpenCV\lib\libopencv_imgproc2410.dll.a\

        G:\OpenCV\lib\libopencv_legacy2410.dll.a\

        G:\OpenCV\lib\libopencv_ml2410.dll.a\

        G:\OpenCV\lib\libopencv_objdetect2410.dll.a\

       G:\OpenCV\lib\libopencv_video2410.dll.a

这次进行了一个摄像头视频流的程序测序,源码为:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
void mycanny(cv::Mat& img, cv::Mat& out)
{
    if(img.channels()==3)
     cvtColor(img,out,CV_BGR2GRAY);
     Canny(out,out,80,100);
     threshold(out,out,128,255,cv::THRESH_BINARY_INV);
}

int main()
{
    VideoCapture capture(0);
    VideoWriter writerorigin("VideoTest.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25.0, Size(640, 480),1);
    VideoWriter writer("VideoCannyTest.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25.0, Size(640, 480),0);
    Mat frame;
    while (1)
    {
       capture >> frame;
       if(!capture.read(frame))  // 读取下一帧图像
         break;
       writerorigin << frame;
       imshow("origin_video", frame);
       Mat result;
       mycanny(frame,result);
       imshow("Canny Video",result);
       writer << result;
       if (cvWaitKey(1) == 27)   // 按下Esc退出程序
        break;
     }
    return 0;
}
测试效果图如下:



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值