Visual Studio 2017中OpenCV源码解读入门篇:配置OpenCV3.4.1生成VC项目并进行编译
对于大多数程序猿,图像视频音频等的开发学习,其实最难的不是界面,也不是代码风格,而是算法。而要了解算法,有两条是必经之路,第一是对原理的理解,大部情况下,这是一个数学问题;第二条,就是对源码的解读,你必须 清楚地知道数学理论是如何变成代码,并最终产生想要的结果的。
学习OpenCv,也是如此。不过从OpenCV提供的源码来看,跨平台确实考虑得比较全面。当然如果你习惯于其他操作系统,这些可能都不是问题。不过我相信,大多数都习惯在windows下学习。至于你的开发平台到底是linux还是Android,那只不过是平台应用函数不同的问题,这些算法的基本原理都是一样的。
关于如何使用OpenCv,请移步到这里,
https://blog.csdn.net/tanmx219/article/details/81448918
言归正传,下面开始讲在windows下调试编译OpenCV3.4.1的源码,这也是目前能得到的最新版本。好了,开始我们的源码编译之旅吧。
首先,到这里
下载cmake
下载完了就要安装, 我的安装路径是D:\mc\CMake,所以其可执行文件的路径是D:\mc\CMake\bin如下,
双击打开cmake-gui,然后分别输入源码的地址和你要生成项目的目标地址,比如我的源码地址是D:\AOpencv\sources
目标地址是:D:\AOpencvProject,在cmake-gui中就要这样填写
如果一切正常的话,你点击configure,选择你的vc版本(这里要注意,32位还是64位要在这里选定)
之后,就能顺利进行第一步配置。如果不幸你看到了这个,
error:
仔细看最下面文本框中的文字,报错的内容无非是CMake does not find Visual C++ compiler, cMake could not find any instance of Visual Studio.或者,CMake: failed to run MSBuild command: MSBuild.exe之类,那说明你的VC本身没有配置好,那就点开你的VC看一下吧,
工具--> 获取工具和功能,找到组件界面,确定在【编译器、生成工具和运行】-->勾选【用于cMake的visual c++工具】和【MSBuild】。如下图所示,
确认这两项都安装好了之后,注意看一下环境路径,把MSbuild.exe所地的目录位置添加到环境变量中去,例如我的msbuild.exe在这里,D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin,就要按如下方式添加环境变量,
我用的patheditor2,不用再解释了吧(https://blog.csdn.net/tanmx219/article/details/81436553)。
配置好了之后,最好把你目录下无用的东西全删除(例如这里的D:\AOpencvProject)重新启动你的cmake-gui.exe,再点击那个configure,选择好vc版本,一切就应该恢复正常了。
出现configure done, 但还是有很多红色啊。没关系,我们先在这一步仔细 检查一下某些选项。
比如你需要OpenGL协同开发,就需要把WITH_OPENGL选项勾选上。
如果你需要研究OpenCV的源码,建议你把WITH_IPP选项关闭,这个默认是勾选的。IPP(Intel Performace Primitive)是Intel专为其芯片架构开发的库,在Intel的芯片上,相关运算(如Intel系列多媒体指令)进行了优化,加快了运算速度,但Intel并没有提供IPP模块的源码,这对理解OpenCV的源码,不一定有益。
检查完毕,再点击configure 一次就可以了。
好了,现在所有的红色都消失了,那就点击那个generate按钮,开始生成vc项目吧。
大功告成,generating done。!然后你点击Open Project按钮,就会自动为你打开openVC的visual C++项目啦。
然后就开始生成项目吧,喝口水,过大约3分钟左右,
Yea! 现在可以愉快地进行opencv源码调试啦。