您的位置:首页 > 运维架构

Cmake编译OpenCV3.1源码

2017-11-09 13:33 204 查看
深度学习作为今年来一个新兴的研究方向,如今真的是不要太火;而OpenCV作为一个久负盛名的开源视觉处理库,也一直被用在卷积神经网络的开源工具——caffe中,用来处理图像。而OpenCV再进入3.0时代以后,也顺应民意加入了DNN模块,能够与caffe无缝对接!

1、要想在OpenCV中运行dnn,首先得编译OpenCV3以上版本的源码,因为dnn模块封装在OpenCV的contrib库中,本博客选用的是OpenCV-3.1,采用的配置是VS2013加OpenCV-3.1,需要下载contrib库(https://github.com/opencv/opencv_contrib),然后在cmake中,

在“开始”菜单中点击“CMake (cmake-gui)”,打开CMake程序,此时将弹出编译设置界面。如下图所示



然后点击configure,选择与你对应的vs版本,然后很快就会配置完成;别急,接下来这步很重要,如下图,找到OPENCV_EXTRA_MODULES_PATH,然后再后面添加contrib的路径,一直到contrib(例如:F:/OpenCV/opencv-3.1.0/opencv_contrib-master/opencv_contrib-master/modules),然后再次点击Configure,完成后点击Generate,就可以生成vs工程了。注意:在这过程中可能会出现一个ocl_text的错误,在搜索框找到text,然后取消后面的对勾,再次Generate就可以了。还有一个需要注意的地方:这Configure的时候选择对应的平台VS2012对应的是Win32,而VS2012
X64对应的是X64,这个和你最后生成的sln有影响,意味着每次只能生成X86的OpenCV或者是X64的版本,而不能在OpenCV.sln中通过切换同时生成两个!



2、编译源码,打开OPENCV.sln,然后rebuild所有项目,等待,大概30分钟左右,可能因每个人电脑性能不同,时间会不同,然后编译生成,右击install,仅重新生成install,然后就编译完成了。这中间可能会有的dll无法生成,因为不影响我的工作,就没再管了!如下图,源码编译的工作就完成了!




如何查看OpenCV中自带函数的源代码

对于从事图像处理相关工作的IT人来说,OpenCV都是或多或少的接触过,在使用其自带函数实现图像处理功能的时候,总有某些时候,我们想着去查看函数的具体实现,一般有如下两种方法来查看其函数实现:

第一种

  OpenCV都带有这个函数的代码!你在用的时候,选择函数,然后右键选择”go
to denifition of cvCalOpticalFlowHS"--->然后就会跳 到定义cvCalOpticalFlowHS的定义文件,就会跳到cv.h头文件来(说明cvCalOpticalFlowHS在cv.h文件中定义的),然后你去cv.cpp文件,按"Ctrl+F" 输入函数名进行搜索,就能找到cvCalOpticalFlowHS函数的源文件了。只适合函数定义在cv.h中的函数。

第二种

如果有些函数是定义在core或者imgproc等模块中的,这个方法就不行,最好就是自己用cmake手动编译OpenCV,编译方法可以参考:如何手动编译OpenCV源码,生成VC++项目,然后用vs打开工程,去里面搜索整个工程。如我要找cvGabor函数,通过查找发现在imgproc—>src—>gabor.cpp下。或者你不想再重新编译,直接从下载的OpenCV的源码版本,在OpenCV目录下的:..\OpenCV-2.4.10\modules目录选对应文件夹(似乎cvLoadImage等无法查看,待验证)。最好是用自己重新编译的,这样所有的函数都可以查看其具体实现!

..\opencv-2.4.8\modules目录下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: