win7_64位QT版本5.5.0,opencv版本2.4.13.6。
首先要安装
(1)Qt Creator 下载地址http://qt-project.org (建议下载最新版本,因为里面带的MinGW版本较高,我最开始使用Qt 4.7.4编译OpenCV-2.4.4一直报错,后来换成Qt 5.0.1编译成功)
(2)OpenCV 下载地址http://opencv.org/(不建议下载最新版本,最新版本的编译需要高版本的MinGW,不然在执行mingw32-make命令会报错)
(3)CMake 下载地址 https://cmake.org/files/v3.4/
之前已经安装了QT,所以只用下载cmake和opencv。下载完opencv的程序,其实就是在当前目录提出opencv文件,简单。本文提取在E:目录下。
cmake我下载的是二进制文件,解压cmake-3.14.6-win32-x86.zip。同理,本文放在E:目录下,然后将E:\cmake-3.15.2-win32-x86\bin\cmake.exe和qt安装目录的bin文件夹,本人为H:\Qt\Qt5.5.0\5.5\mingw492_32\bin 加入系统变量,我的电脑 右击—>高级系统设置 双击—>环境变量 双击,—>选择PATH,点击编辑,将上面两个路径copy进去,注意之间用;分号分割。保存,关闭。
cmake编译opencv
点击E:\cmake-3.15.2-win32-x86\bin\cmake-gui.exe,打开cmake。第一个就是opencv的文件夹,第二个是我建在E:下的保存待会编译文件的地方,自己建文件夹就行。
然后点击左下角Configure。选择选择MinGW Makefiles和Specify native compilers。
然后next,填入指定C++和C的编译器路径,C用gcc.exe,C++用g++.exe:这个在qt安装的/bin目录下。
本文在H:\Qt\Qt5.5.0\5.5\mingw492_32\bin下。点击finish。
可能报错:
CMake Error: The source directory "E:/opencv" does not appear to contain CMakeLists.txt.
解决方法:
问题是找不到CMakeList.txt文件,由于opencv版本不同,如果报错,在where is source code选择CMakeList.txt的目录,如,本文选择CMakeList.txt,再次点击configure,然后generate。
可能报错:
CMake Warning at cmake/OpenCVPackaging.cmake:23 (message): CPACK_PACKAGE_VER。。。。
解决办法:打开CMakeList.txt文件,ctrl+f,输入set(OPENCV_VCSVERSION "unknown"),前面几个就可以找到对应的行。
修改如下:
if(NOT GIT_RESULT EQUAL 0)
set(OPENCV_VCSVERSION "unknown")
endif()
else()
# We don't have git:
# set(OPENCV_VCSVERSION "unknown")
set(OPENCV_VCSVERSION "2.4.13.6")
endif()
这个版本号可以在CMake-gui下面的编译部分找到:
General configuration for OpenCV 2.4.13
=====================================
Version control: unknown
然后再次Configure,无错误后选中WITH_QT
再次Configure会出现下图信息提示找不到Qt的Qmake可执行文件
手动指定Qmake.exe所在目录
(注意这张图是我在网上复制的别人的)
可能报错:
CMake Warning at cmake/OpenCVFindLibsGUI.cmake:18 (find_package): By not providing "FindQt5Core.cm。。。。
cmake配置opencv的时候出现的错误及解决方法 - IT张先生 - CSDN博客 https://blog.csdn.net/zwjzwj108108/article/details/83868561
解决:打开opencv/CMakeList.txt文件
开头加上下面这句话:
set (CMAKE_PREFIX_PATH "H:\\Qt\\Qt5.5.0\\5.5\\mingw492_32\\")
再次Configure,无错误后 Generate。
generate完成后,WIn+R打开输入cmd,打开命令行窗口。
补个课:
不跨磁盘,直接用cd +目录
跨磁盘需要两步,
例如我要进入 E:/Program Files/PHP 就
1.输入 E:回车,进入E盘
注: 不 能在一打开CMD的时候运行CD E:/Program Files/PHP
2.再输入 CD "Program Files"/PHP 回车
注:目录里如果有空格,需要用引号引起来,例如"Program Files"
进入到自己建立的保存cmake生成文件的文件夹(cmake-gui中的where to build the binaries的目录),本文也就是E:\opencmake
输入Cmd命令 编译文件
>> mingw32-make
输入Cmd命令 编译INSTALL
>> mingw32-make install
配置QT的opencv开发环境
在QT的pro文件中添加下面的:(opencv安装路径和编译输出路径不同,版本号不同的话,复制记得修改后面的数字就行了)
INCLUDEPATH += E:\opencv\build\include \
E:\opencv\build\include\opencv \
E:\opencv\build\include\opencv2
LIBS += E:\opencmake\lib\libopencv_calib3d2413.dll.a \
E:\opencmake\lib\libopencv_contrib2413.dll.a \
E:\opencmake\lib\libopencv_core2413.dll.a \
E:\opencmake\lib\libopencv_features2d2413.dll.a \
E:\opencmake\lib\libopencv_flann2413.dll.a \
E:\opencmake\lib\libopencv_gpu2413.dll.a \
E:\opencmake\lib\libopencv_highgui2413.dll.a \
E:\opencmake\lib\libopencv_imgproc2413.dll.a \
E:\opencmake\lib\libopencv_legacy2413.dll.a \
E:\opencmake\lib\libopencv_ml2413.dll.a \
E:\opencmake\lib\libopencv_objdetect2413.dll.a \
E:\opencmake\lib\libopencv_video2413.dll.a
可能报错
Extra characters after test expression.
解决:这是因为你复制粘贴要放在= 后面粘贴,不要放在下一行粘贴。
下面就是opencv 的使用了。