QT5.7 deploys opencv2.4.13(the version of opencv is not newer than QT)

来源:互联网 发布:上海企业seo外包 编辑:程序博客网 时间:2024/06/07 06:15

Ubuntu下搭建opencv开发环境:
http://blog.csdn.net/scien2011/article/details/52539325
安装适用于python3的opencv:
http://blog.csdn.net/scien2011/article/details/52539644

前言
opencv是一个跨平台计算机视觉库,使用前需要把它编译成二进制的静态库和动态库,之后在代码中直接连接到二进制库,省去了每次都要编译。

网上很多教程都是用cmake配合MinGW编译opencv,其中需要用到命名行操作,其实有更简单的方法,Qt Creator支持cmake,可以直接用Qt Creator在图形界面中编译好opencv。code blocks也支持cmake,不过我没有尝试

对于各个C++ IDE的看法
我试过vs2015,eclipse,code blocks,Qt Creator,各有优缺点。

vs2015
不需要编译opencv,下载opencv for windows有已经编译好的文件可以直接调用;但是我不习惯vs的界面,用起来太麻烦,不适合初学者。并且vs只能在windows上用,我更喜欢多平台通用的IDE。

eclipse
打开界面的速度太慢了,果断放弃。

code blocks
这是一个不错的IDE,虽然界面不太漂亮。但是在编译opencv的过程中总是失败,最终选择了其他IDE。

Qt Creator
最终在Qt Creator上编译opencv成功。Qt Creator的界面很简洁美观,并且适合以后用Qt开发图形交互界面,我选定了Qt Creator作为opencv开发环境。

准备
1. 安装cmake
编译opencv需要用到cmake这个工具。

下载:https://cmake.org/download/
建议下载安装版的,这个可以自动加入系统环境变量。

这里写图片描述
安装,选择第二个,为所有用户添加系统路径。之后Qt可以自动找到cmake。
这里写图片描述

  1. 安装Qt Creator
    下载:https://www.qt.io/download-open-source/#section-2
    选择离线安装包,在线安装太慢,经常会安装失败。

选择MinGW版本,VS 版本还需要安装对应的VS,单独安装Qt 是不可用的,而MinGW版本自身带有MinGW。

建议下载最新版本,因为里面带的MinGW版本较高,如果MinGW版本比opencv需要的版本底会编译失败。

这里写图片描述

安装:安装路径不能有空格,我安装在默认路径,然后一路NEXT。

  1. 下载opencv
    下载opencv for Linux
    http://opencv.org/downloads.html

opencv for windows跟opencv for Linux的源码是一样的,只是
opencv for windows里面多了以编译好的opencv,这个我们不需要,只要下载源码就行了。

如果编译失败,试试换用其他版本的opencv。
我在Ubuntu上编译3.1版失败,编译2.4.13和3.0.成功,在windows上编译3.1成功,3.0却失败,试了不少于10次,之后才意识到跟MinGW版本有关,MinGW版本要跟opencv版本对应才能编译成功。

这里写图片描述
编译opencv
确认Qt成功找到cmake
打开Qt Creator,工具->选项->构建和运行->CMake,如果之前CMake配置好了系统路径,这里应该会自动加载到系统路径,否则手动指定cmake的路径。
这里写图片描述

用Qt打开opencv项目
【Open Project】打开opencv的CMakeLists.txt

这里写图片描述
之后会出现一个Configure Project窗口,配置编译时产生的中间文件保存的路径,这些不用改,直接点击Configure Project按钮。中间文件会保存在跟opencv的文件夹在同一路径的一个文件夹,编译完删掉就好了。

进入【项目】,编译构造配置选择Release。
这里写图片描述

然后等几分钟,这段时间Qt正在读取CMakeLists.txt文件,当在概要信息看到Configuring done和Generating done就读取完了。

这里写图片描述
进入【项目】,找到CMAKE_INSTALL_PREFIX,设置一个路径,这个路径是编译完成后输出的路径。其他配置保持默认。然后点击 Apply Configuration Changes。未保存的内容会是粗体字,已改变的配置将会是斜体字,再点一次Apply Configuration Changes,Apply Configuration Changes按钮将会变成灰色。
这里写图片描述

再到构建步骤,详情,勾选install,然后点右下角的“锤子”,开始构建。这个过程会花半个小时左右,当编译输出中显示“正常”退出,表示构建成功,在CMAKE_INSTALL_PREFIX路径中可以看到产生的文件。如果编译失败,则换个opencv版本,重新尝试。
这里写图片描述

配置opencv开发环境
编译好的opencv会有以下这些文件夹,把这些文件放到合适的位置。我就放在c盘opencv文件夹里了。
这里写图片描述

配置opencv系统路径
对计算机右键->属性->高级系统配置->环境变量>Path变量里加入opencv的bin文件夹的路径,用分号跟其他路径分隔。

这里写图片描述
新建Qt项目
建立Qt console Application或其他项目->empty qmake project。Qt console Application会生成一个cmd窗口,而empty qmake project就全是空的,手动添加源文件。
这里写图片描述

给qt项目添加头文件路径和静态库路径
这里写图片描述
在.pro文件中添加以下代码。每次新建项目都要添加,好在复制粘贴很方便。不同版本opencv的静态库的文件名不一样,需要注意。

INCLUDEPATH += D:/QT/opencv/include \D:/QT/opencv/include/opencv \D:/QT/opencv/include/opencv2LIBS += -LD:/QT/opencv/build/x64/vc2/lib/ -llibopencv_calib3d2413.lib\-llibopencv_core2413.lib\-llibopencv_contrib2413.lib\-llibopencv_features2d2413.lib\-llibopencv_flann2413.lib\-llibopencv_gpu2413.lib\-llibopencv_highgui2413.lib\-llibopencv_imgproc2413.lib\-llibopencv_legacy2413.lib\-llibopencv_ml2413.lib\-llibopencv_objdetec2413.lib\-llibopencv_photo2413.lib\-llibopencv_stitching2413.lib\-llibopencv_superres2413.lib\-llibopencv_ts2413.lib\-llibopencv_video2413.lib\-llibopencv_videoio2413.lib\-llibopencv_videostab2413.lib\

测试
新建一个empty qmake project,写入以下代码,cvLoadImage( )函数里填入一张照片的路径,如果能编译成功并显示照片就配置成功了。
注意文件的路径是正斜杠,不是windows路径的反斜杠,如果用反斜杠得这样写:”D:\Pictures\RoboMasters.jpg”

include “opencv/highgui.h”

int main(int argc, char *argv[])
{
IplImage* img = cvLoadImage(“D:/Pictures/RoboMasters.jpg”);
if (img == NULL)
return 1;
cvNamedWindow(“abc”,CV_WINDOW_AUTOSIZE);
cvShowImage(“abc”,img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyAllWindows();
return 0;
}

最后将install文件夹下面的“include”“lib”“bin”单独取出作为QT调用的库文件,然后将bin的路径加入到环境变量中,就OK啦

参考:http://blog.csdn.net/mevip/article/details/49761245

0 0
原创粉丝点击