1 软件下载

  • CMake V3.9.0
  • OpenCV V3.2.0
  • Qt V5.8.0
  • 注意:请严格按照这几个版本,我之前下载了其他的版本编译总是出错,虽然不确定是否一定是版本问题,但是减少错误因素吧!

2 添加系统环境变量

将编译器的路径添加到系统的环境变量Path中,没有就新建。

D:\Qt\Qt5.8.0\Tools\mingw530_32\bin; D:\Qt\Qt5.8.0\5.8\mingw53_32\bin

注意:这里最好直接复制路径过来,减小错误发生!(自己Qt的安装目录)

opencv qt内嵌 qt添加opencv_环境变量

注意:CMake安装时勾选添加CMake到系统Path中(又不用手动去添加了)

3 打开CMake-gui ,进行OpenCV编译

前面步骤不容易出错,网上很多教程都有,关键到了第一次configure之后就容易出错,所以这里说下

总共两次configure,一次generate是最后。

勾选WITH_QT 点击 configure;

出现几个红色,Qt开头的确认value的路径没问题,再一次点击configure;

没有红色了,点击generate

注意:我没有勾选OPENGL,如果你要用的话自行勾选,可能会出现跟OPENGL相关的红色项!比如你没有类似的lib文件等等。

后面就编译成功了。

4 编译好之后,添加环境变量,重启

编译好之后,把下面三个文件夹提取出来放在一个新目录下,比如:D:\QtOpenCV

  1. OpenCV安装目录下的build\include文件夹
  2. CMake生成后的lib文件夹
  3. CMake生成后的bin文件夹

opencv qt内嵌 qt添加opencv_opencv_02

之后将上图bin的路径(D:\QtOpenCV\bin)添加到系统环境变量,重启电脑

5 测试配置是否成功

Qt新建一个工程,先在.pro文件里添加依赖项

INCLUDEPATH += D:\QtOpenCV\include
               D:\QtOpenCV\include\opencv
               D:\QtOpenCV\include\opencv2
LIBS += D:\QtOpenCV\lib\libopencv_*.a

注意:同样最好用自己文件下的路径复制过来

然后在main.cpp文件里添加

#include "mainwindow.h"
#include <QApplication>
#include <opencv2/opencv.hpp>


int main(int argc, char *argv[])

{

    //声明IplImage指针

    IplImage*pImg;

    //载入图片

    pImg=cvLoadImage("C:/Users/Administrator/Desktop/lena.jpg",1);

    //创建窗口

    cvNamedWindow("Image",1);

    //显示图像

    cvShowImage("Image",pImg);

    //等待按键

    cvWaitKey(0);

    //销毁窗口

    cvDestroyWindow("Image");

    //释放图像

    cvReleaseImage(&pImg);

    return 0;

}

注意:代码中 添加自己的图片路径

然后我运行出错了:

Could not create directory "D:\QTdemo\Error in " Util.asciify("build-demo-1-Desktop_Qt_5_6_2_MinGW_32bit-Debug")": TypeError: Property 'asciify' of object Core::Internal::UtilsJsExtension(0x287e8a8) is not a function"
Error while building/deploying project demo-1 (kit: Desktop Qt 5.6.2 MinGW 32bit)
When executing step "qmake"

网上找了资料,我确定是路径没对,就是左边项目那里,构建目录的路径没对

opencv qt内嵌 qt添加opencv_CMake_03

解决办法就是:自己在工程文件夹上新建一个文件夹,名字就是这个目录的名字,然后再添加到构建目录里

opencv qt内嵌 qt添加opencv_CMake_04

这只是一个例子的路径,每个项目应该都是要建立的。分析了出错的原因:就是因为自己之前装了其他版本的Qt然后卸载,这个新的就不能自己build了,我就是参考原来的,发现原版本的就是会自动建一个文件夹,总之是解决了!

然后运行会提示有两个警告说:argc 和 argv 两个变量没有使用,如果不想要警告,可以在.pro文件里添加一行:

QMAKE_CXXFLAGS +=  -Wno-unused-parameter

就没有警告了。

最后就是lena出来了

opencv qt内嵌 qt添加opencv_opencv qt内嵌_05