1原材料:
1.1qt:版本为5.6.1
1.2 opencv:版本3.1.0
1.3 opencv_contrib:3.1.0
1.4cmake:3.7.2
2安装
2.1qt,直接安装就行,路径不要有中文和空格等奇怪路径
2.2用cmake编译opencv,第一个选opencv源码路径,第二个框选你要build的路径
可以选择第二个选项,那样c/c++就要选qt安装路径下tools文件的gcc.exe和gc++.exe,一般选择第一个选项就行了
2.2.2点击configure配置,出现如下错误
网上说找到Name为CMAKE_MAKE_PROGRAM的一项,把它的Value填写为C:/Qt/Qt5.xxx/Tools/mingwxxx_32/bin/mingw32-make.exe即可。再次点击Configure,但是这里没有CMAKE_MAKE_PROGRAM,经查找发现要勾上Advanced选项才有
选择好CMAKE_MAKE_PROGRAM路径后,再次configure
2.3.2可以编译,但是很难完成,因为卡在opencv_ffmpeg.dll、opencv_ffmpeg_64.dll、protobuf-cpp-3.1.0.tar.gz、vgg_generated_64.i,速度很慢
可以到通过opencv的exe方式安装的build目录下的bin里面找到opencv_ffmpeg310.dll和opencv_ffmpeg310_64.dll去掉310然后放在源目录的3rdparty的ffmpeg目录下
2.4添加contrib模块,在opencv_extra_module_path添加额外库opencv_contrib下面的module文件路径,继续configure后generate,然后打开mingw的cmd命令进去刚才cmake填的build路径下,使用mingw32-make,这里可能会因为bioinspired这个东西导致崩溃退出,这时可以再cmake的configure的选项中去掉Build_ opencv_bioinspired,或者去额外的库opencv_contrib的modules\bioinspired\src\opencl下面打开retina_kernel.cl这个文件,把里面的注释全部删掉继续mingw32-make,然后就可以mingw32-make install
可以发现在D:/Code-software/opencv_3_1_0/build的路径(就是刚才cmake填的第二个路径)下生成install文件,可以把里面的include,以及x86/mingw32的bin和lib文件拿出来放在自己的新建的路径,比如我的是D:/Code-software/opencv_3_1_0/Opencv_Qt_install/
3使用opencv
3.1在项目*.pro文件中添加如下语句,比如我的是D:/Code-software/opencv_3_1_0/Opencv_Qt_install/
INCLUDEPATH+=D:/Code-software/opencv_3_1_0/Opencv_Qt_install/include\
D:/Code-software/opencv_3_1_0/Opencv_Qt_install/include/opencv2\
D:/Code-software/opencv_3_1_0/Opencv_Qt_install/include/opencv
LIBS+=-LD:/Code-software/opencv_3_1_0/Opencv_Qt_install/lib/libopencv_*.a
3.2在*.cpp文件中代码如下:
#include"mainwindow.h"
#include<QApplication>
#include<opencv2/opencv.hpp>
usingnamespacestd;
usingnamespacecv;
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
MainWindoww;
cv::Matframe2;
//cv::namedWindow("1",0);
//cv::imshow("1",frame2);
w.show();
returna.exec();
}
3.3点击编译运行,这时可能会出现crashed
或者调试时0xc0000135
这可能是没找到库路径
1可在系统环境变量Path里面添加opencv install的库路径,比如我的是
也可以把D:\Code-software\opencv_3_1_0\Opencv_Qt_install\lib一同加进去
2第二种方法在
的run enviroment里面的path添加一方法中的bin和lib路径
然后最好重新新建一个项目,这个项目不要(因为我的这个原始项目一直不行,但是新建的可以)