Win10下搭建Clion+OpenCV3.2+OpenCV_Contrib3.2的环境

本篇论文为转载,感谢原作者,自己对着这篇博文安装的时候失败了很多次,最后是在一个稳定的可以连接外网的环境中安装成功,最后总体来说,完全按照楼主的操作就能装上!

Clion 是一个轻量级的C++编译工具,如果你是在校学生的话,可以在Jetbrain官网上免费申请一年的试用时间,还是非常友好的。推荐大家使用,要比Visual Studio 运行速度快很多,界面更友好!(个人见解)

--------------------------------------以下是原创作者内容---------------------------------------------------------------------

不久前我终于受不了笨重的VS2015了,转而使用清爽的Clion,之前一直用的是OpenCV3.1,现在也换OpenCV3.2了,可是OpenCV3相比于OpenCV2最大的坏处就是那些特征匹配算法相关的函数都放在了OpenCV_Contrib扩展包里了,在你编译OpenCV3.2源代码的时候,要带着OpenCV_Contrib3.2的扩展包一起编译,这样你才能用SIFT、SURF等特征匹配的算法。长话短说,接下来介绍如何在WIN10平台下,搭建Clion+OpenCV3.2+OpenCV_Contrib3.2的环境。
        需要准备的东西如下:以下东西都可以从我的网盘链接里去下载:http://pan.baidu.com/s/1hs1kde8

有:OpenCV 3.2的源代码安装包:opencv-3.2.0-vc14.exe;OpenCV3.2的扩展功能包:opencv_contrib-3.2.0;
       cmake安装包:cmake-3.8.0-rc1-win64-x64.msi
       Gcc编译器:tdm64-gcc-5.1.0-2.exe
       Opencv在Cmake的时候需要下载的文件:ffmpeg.zip,ippicv.7z
       当然还需要安装git,git的下载和安装请另行解决,过程很简单,不在这里展示

步骤一:安装各种工具
安装Gcc编译器:双击tdm64-gcc-5.1.0-2.exe
安装cmake:双击cmake-3.8.0-rc1-win64-x64.msi
安装Opencv3.2:其实就是解压源代码包,双击opencv-3.2.0-vc14.exe,我的话,将其解压到一个OpenCV3.2的文件夹中了,解压后你会发现在OpenCV3.2的文件夹中有个Opencv文件夹,里边有build,source两个文件夹
将opencv_contrib-3.2.0的文件夹复制到\Opencv3.2\opencv文件夹中

步骤二:执行Cmake
在Opencv3.2\opencv目录下,新建一个mingw_build文件夹,用来放源代码编译产生的东西,然后整个Opencv3.2\opencv目录下是这个样子:共4个文件夹了


在执行cmake之前,还需要复制一些东西:
解压从我网盘下载的ffmpeg.zip压缩包,将其中的downloads文件夹复制到Opencv3.2\opencv\sources\3rdparty\ffmpeg\目录下
解压从我网盘下载的ippicv.7z压缩包,将其中的dowmloads文件夹复制到Opencv3.2\opencv\sources\3rdparty\ippicv\目录下

 

这个操作是提前将cmake过程中要下载的东西放到了指定目录下,否则cmake的时候会因为这些东西下不下来而失败

以上操作完成之后,就执行Cmake安装好后得到的cmake-gui软件,准备cmake:
先配置好源文件路径和编译输出文件夹的路径,分别如下:


然后,点击下面的config按钮,就会让你选择编译器,我们选择minGW Makefiles


点击finish之后,就开始cmake的config了,config完后,结果如下:

出现Configuring done之后,需要再次点击一下config,让这片红色消失:


再次Configuring done之后,就点击generate,开始生成makefile文件

再Configuring done的基础上看到了Generating done,说明generate完成了

接下来添加扩展包路径,再次执行config和generate的操作:
添加扩展包的路径的方法如下,再cmake_gui的窗口中找到OPENCV_EXTRA_MODULES_PATH这一项,可以看到是空白的,我们将OpenCV_contrib3.2的modules文件夹路径添加进来,如下所示:


然后再次点击configure,跟之前一样,也会出现红色,然后再次点击configure,红色消失,说明config完成,
然后就点击generate,出现generating done 就说明Opencv3.2的扩展包也cmake完了,扩展包cmake的图片就不贴出来了,反正跟上面三幅图是一样的。

当扩展包的cmake也出现Generating done之后,我们就可以开始执行cmake生产的makefile文件了,即开始编译链接的工作


步骤三:编译链接cmake生产的makefile文件
在cmake的目标文件夹中,即路径\Opencv3.2\opencv\mingw_build下,单击右键,选择Git Bash Here,前提是你要已经安装了git
然后就打开了git bash的命令行窗口,
输入指令mingw32-make -j8,开始执行编译链接工作,如下所示:


然后你需要苦苦等待,看着编译进度从0%开始一点一点往上加,如果出现100%不报错,那么你就成功了,如下所示:


        当然,很可能失败,如果失败了,不要慌,如果是recipe for target "all"的error,那么就网上滚窗口,找到具体error出现在哪里,然后你可能看到什么文件名中带有hdf的报错内容,或者跟python相关的内容,或者其他,这个时候,有一个解决办法如下:
        其实那么大一个Opencv的源代码,可能会由于各种各样的原因,出现某些包没法编译的现象,而且基本上也是我们不怎么用得到的包,那么我们大可以不选择编译这些包,这样就不会出现上面的那些error了
        那么怎么去决定那么不要编译呢,那你就要回到cmake_gui界面了,如下所示:

这里打勾的就是说你要编译的,取消打勾就不会去编译,不过讨厌的是,你不仅仅只要去掉那些对应模块的钩子那么轻松,去掉钩子之后,你需要再次去掉OPENCV_EXTRA_MODULES_PATH中的内容,然后config,然后generate,然后再加上OPENCV_EXTRA_MODULES_PATH中的内容,然后再config,再generate,也就是说要重新走步骤二
走完后,再次再Git Bash命令行中执行mingw32-make -j8,这次你应该能轻松到100%了

步骤四:执行Install,生产我们最终想要的动态链接库
上面走到100%后,就可以输入mingw32-make install命令了,如下所示:


这次也是从0%到100%跑,不过过程会短的多,而且应该不会有什么Bug出现了

OK,走完以上这些,基本上就大功告成了,接下来我们就为写OpenCV的代码做准备工作

步骤五:写OpenCV代码前的准备工作
所谓准备工作,就是编译完成Opencv和它的扩展包之后,需要配置环境变量,然后做一些文件复制的工作,不过这些都是一劳永逸的,完成一遍就好了
第一,配置环境变量,再系统环境变量的Path中添加C:\OpenCV3.2\Opencv3.2\opencv\mingw_build\install\x64\mingw\bin,即把你生成的动态链接库的地址告诉系统,当然这个路径具体是你自己的路径,不要完全复制我的这个路径。


第二,将C:\OpenCV3.2\Opencv3.2\opencv\mingw_build\install\include中的opencv和opencv2两个文件夹复制到你安装Tdm64-gcc的安装目录的include目录下:


OK,这样的话,准备工作就完成了


步骤六:打开Clion,前提是你安装好了Clion,新建工程,配置编译工具链,配置cmakefiles文件,写测试代码,测试
打开Clion,点击工具栏的file,然后选择new,就出先如下界面:选择第一个C++ Executable类型即可,C++11也不用改,配置好你的工程路径和工程名之后,就点击create即可


第一次建工程的话,可能需要配置clion的编译工具链,你可从工具栏file->setting中找到如下界面:


在右边的MinGW Home中填入你安装TDM-GCC-64的安装路径即可,然后它下面就会回自动识别出来工具栏具有哪些内容,应该会看到Cmake:3.8.2下面三条内容都还没刷出来,需要等待其刷出来,跟我这个图片一样就OK了,点击OK,关掉setting的界面

然后你会看到相比VS2015,clion工程中只有cmakefiles和main.cpp两个文件,我们只需要配置好Cmakelist文件的内容后,就可以编写main.cpp了
cmakefiles的内容如下:

请忽略中间那个http://的内容,这是截图没截好的原因
你需要添加一些内容,变成如下所示:

自己寻找不同,添加了一些内容,注意,划红线的内容就是你的工程名,要保持一致,蓝线的内容是也要是你自己对应的路径,不要直接用我的这个。
cmakefiles改完后,提示你要不要reload的时候,选择auto reload,如果下面窗口没有红色的报错,那么恭喜你改成功了,如下所示:


最后,你就放心写的你代码去吧,我的测试代码如下:


其中,如果你能导入xfeatures2d的包,那么说明你的扩展包也编译成功了
执行结果就是显示一张很经典的图片:当然你需要提前将1.jpg这张图片放在你的工程目录的cmake-build-debug文件里边


虽然过程比较辛苦,但是最终实现了还是挺开心的对吧,我也只是个啥都不懂的程序员,希望大家一起努力啦~
--------------------- 
作者:MRJTM 
来源:CSDN 
原文:https://blog.csdn.net/qq_25109263/article/details/76945395 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值