使用到的东西
Windows10 (其实Windows7、Windows8都没所谓啦)
QT5.9.1:
http://caesar.ftp.acc.umu.se/mirror/qt.io/qtproject/archive/qt/5.9/5.9.1/qt-opensource-windows-x86-5.9.1.exe
CMake3.8.1(话说不用贴32位的地址了吧,我真的不是鄙视32位来着):
https://cmake.org/files/v3.8/cmake-3.8.1-win64-x64.msi
OpenCV3.2.0 (此处直接使用github上的最新版):
https://codeload.github.com/opencv/opencv/zip/3.2.0
安装QT5.9
这个不用说了,一路Next就好了。(有个注册想注册也行,不想注册跳过就好了)
我为了分离大型应用程序到机械硬盘上,装到了D盘(D:\QT5.9\
),下面需要用到安装路径的时候大家可以自行调整
环境变量
QT安装好后要记得添加\\bin
到环境变量中去
这里我的是D:\QT5.9\Tools\mingw530_32\bin
编译OpenCV3.2
这个是这个文章的重头戏,共分为两个步骤:CMake
和Make && install
CMake
先安装CMake.msi,不用多讲。
解压OpenCV的压缩包
然后启动CMake(GUI)
随后CMake会自动开始第一轮编译
红的项目表示仍旧未经过验证合法性,不要怕,先设置几个关键变量
CMAKE_BUILD_TYPE选择DEBUG
或者RELEASE
,对应生产调试阶段和发行阶段,这里选DEBUG
BUILD_EXAMPLES 附加例子,可要可不要
WITH_QT 编译QT,必须要
分别设置既可(图像经过裁剪),然后按下Configure按钮。
途中可能会遇到需要“联网”下载OpenCV_FFmpeg.dll的情况,请自行“联网”,CMake会自动下载。
随后又多出来几个新选项,依次仿照上图格式填好既可(不同版本可能有部分路径不同,请自行调整)
再次Configure,多出来一个新选项,再次配置即可
最后一次Configure,然后再Generate,完毕。
CMake可以光荣退休了。
mingw32-make
进入刚才编译出来的目录(Windows7以上可以直接在文件夹中Ctrl+Shift+右键呼出的弹出菜单中选择“在此处打开CMD”),运行mingw32-make -j 8。
-j选项指定make时使用的多线程数,可根据自己情况更改。
等到编译完成100%后继续安装:mingw32-make install
等到安装也完成了就可以正式使用OpenCV啦!
使用
在QT的.pro文件中加入:
INCLUDEPATH+=D:\OpenCV\opencv-master\buil\include\opencv\
D:\OpenCV\opencv-master\buil\include\opencv2\
D:\OpenCV\opencv-master\buil\include
LIBS+=D:\OpenCV\opencv-master\buil\lib\libopencv_calib3d244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_contrib244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_core244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_features2d244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_flann244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_gpu244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_highgui244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_imgproc244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_legacy244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_ml244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_objdetect244.dll.a\
D:\OpenCV\opencv-master\buil\lib\libopencv_video244.dll.a
测试
在main.cpp中输入:
#include //Include file for every supported OpenCV function
int main( int argc, char** argv )
{
cv::Mat img = cv::imread("pic.jpg");
if( img.empty() ) return -1;
cv::namedWindow( "Example1", cv::WINDOW_AUTOSIZE );
cv::imshow( "Example1", img );
cv::waitKey( 0 );
cv::destroyWindow( "Example1" );
return 0;
}
然后在你的工程目录下放置一个名为pic.jpg的图片,运行即可看见效果啦~~~~
在弹出窗口上按下任意键即可退出~~~~~