一.准备:
1.cmake-3.11.1-win64-x64
https://cmake.org/files/v3.11/
2.qt-opensource-windows-x86-msvc2015-5.6.3
3.vs2015
4.opencv-3.4.1-vc14_vc15.exe
https://github.com/opencv/opencv/releases/tag/3.4.1
二.安装软件:
1.cmake安装(解压即可使用)
2.qt安装,如果需要还要安装WDB http://www.codemachine.com/downloads.html
3.VS安装
4.opencv安装:其实就是个解压过程,安装后有源码和已编译好的二进制
三.编译:
1.打开 ...cmake-3.11.1-win64-x64\bin\cmake-gui.exe
红标1选择opencv源码路径
红标2为新建的opencv编译的二进制存放路径
2.选好和新建好后,点击红标3,出现如下图界面:
红标1处选择编译器,我们这里选择vs 14 2015(14为内部版本号,其实就是我们常说的vs2015)
红标2出可不填
红标3处选择 Use default native compiler
配置完成后点击 Finish
3.打开等待了1分钟后配置完成,界面显示如下图:
由于我们是用QT开发opencv,所以我们需要在红色区域找到WITH,把它下面的WITH_QT和WITH_OPENGL选上,并将WITH_IPP的勾选去掉(否则编译的时候会出错),再次Configure。
4.界面出现如下图错误:
这是提示我们有一些变量未找到,需要我们手动配置,ps:这是由于我们配置了qt相关的东西,所以需要将qt相关路径加入变量
如上图,
QT_QMAKE_EXECUTABLE
Qt5Concurrent_DIR
Qt5Core_DIR
Qt5Gui_DIR
Qt5Test_DIR
Qt5Widgets_DIR
需要配置,找到qt安装目录
QT_QMAKE_EXECUTABLE 填入:...\QT\5.6.3\msvc2015\bin\qmake.exe
Qt5Concurrent_DIR 填入:...\QT\5.6.3\msvc2015\lib\cmake\Qt5Concurrent
Qt5Core_DIR 填入:...\QT\5.6.3\msvc2015\lib\cmake\Qt5Core
Qt5Gui_DIR 填入:...\QT\5.6.3\msvc2015\lib\cmake\Qt5Gui
Qt5Test_DIR 填入:...\QT\5.6.3\msvc2015\lib\cmake\Qt5Test
Qt5Widgets_DIR 填入:...\QT\5.6.3\msvc2015\lib\cmake\Qt5Widgets
5.本人填好的界面如下图:
再次点击Configure
6.界面提示还有变量未找到:
Qt5OpenGL_DIR 填入:.../QT/5.6.3/msvc2015/lib/cmake/Qt5OpenGL
再再次点击Configure
7,当前界面再也没有红色了(嘻嘻),这是丶击Generate,等待cmake生成vs工程文件
8. 修改cmake
在(opencv源码)...\opencvsrc\opencv\sources\cmake下找到 OpenCVCompilerOptions.cmake
打开它并找到
add_extra_compiler_option(-Werror=non-virtual-dtor)
将它注释掉,变成:
#add_extra_compiler_option(-Werror=non-virtual-dtor)
9.生成后丶击,Open Project,此时vs2015就自动打开了。等待它配置会儿。。。
10,界面如下图:
右键丶击红标处生成
10.此时,opencv就已经全部编译完成,生成的内容存储在【三.编译->1.cmake 红标2新建的文件夹中】
四.测试
对于本人,生成内容存在于C:\zoom\project\opencv\src_3.4.1\opencv\mybuild_win64\install中
- 配置环境
将路径C:\zoom\project\opencv\src_3.4.1\opencv\mybuild_win64\install\x86\vc14\bin添加到系统环境变量path中。
五.代码测试:
打开Qt Creator,新建一个空的控制台工程,任意命名
- 添加代码或配置
工程文件.pro文件内添加下列语句:
INCLUDEPATH+= C:\zoom\project\opencv\src_3.4.1\opencv\mybuild_win64\install\include\opencv \
C:\zoom\project\opencv\src_3.4.1\opencv\mybuild_win64\install\include\opencv2 \
C:\zoom\project\opencv\src_3.4.1\opencv\mybuild_win64\install\include
LIBS+=-LC:\zoom\project\opencv\src_3.4.1\opencv\mybuild_win64\install\x86\vc14\lib -lopencv_calib3d341d \
-lopencv_core341d \
-lopencv_dnn341d \
-lopencv_features2d341d \
-lopencv_flann341d \
-lopencv_highgui341d \
-lopencv_imgcodecs341d \
-lopencv_imgproc341d \
-lopencv_ml341d \
-lopencv_objdetect341d \
-lopencv_photo341d \
-lopencv_shape341d \
-lopencv_stitching341d \
-lopencv_superres341d \
-lopencv_video341d \
-lopencv_videoio341d \
-lopencv_videostab341d
在cpp文件里面添加如下代码(插入图片自己找):
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
int main(int argc,char *argv[])
{
//声明IplImage指针
IplImage*pImg;
//载入图片
pImg=cvLoadImage("C:/Users/isee/Pictures/Camera Roll/psb.jpg",1);
//创建窗口
cvNamedWindow("Image",1);
//显示图像
cvShowImage("Image",pImg);
//等待按键
cvWaitKey(0);
//销毁窗口
cvDestroyWindow("Image");
//释放图像
cvReleaseImage(&pImg);
return 0;
}
点击运行: