前言:这篇博客是在2017年6月就已经写好,发现一直存在草稿箱中没有发出去。这个是本人在做双目测距项目前学习的opencv内容,时间已久如果有错误希望大家及时纠正。
一、为什么要重新编译?
实际上直接下载的opencv解压后得到的动态链接库就可以直接用在工程中,但是在调试过程中,有时候想要查看源码只能在根目录中寻找相应的cpp文件查看,比较麻烦,所以就要重新编译生成.dll和.lib文件从而替换掉,opencv提供的.dll和.lib文件;除此之外像opencv3.2.0就不会提供vs2010对应的库,所以如果不想因为opencv版本问题而换编译器就只能重新用vs2010进行编译;并且官方提供的编译库一般只是标准版本,可能与某些库并不兼容,比如官方提供的编译好的版本与opengl就不兼容,这时就只能自己构建项目后编译。
总结:1. 方便调试opencv源码;2. 为了与某些库兼容
二、重编译得到了什么?
新产生的动态链接库(.dll和.lib)。
三、编译过程
(一)下载安装以下工具:
OpenCV3.2.0: http://opencv.org/releases.html
OpenCV_contrib:https://github.com/opencv/opencv_contrib/releases
CMake_gui: http://www.cmake.org/cmake/resources/software.html
下载以上内容并安装opencv和cmake-gui,我的OpenCV安装路径为H:\编译opencv3.2\opencv
(二)编译过程:
1、在gui中配置OpenCV:
(1)打开CMak-gui
(2)在where is the source code选择opencv的安装目录(源文件下的sources文件夹),我的是H:/Edit_opencv3.2/opencv/sources
(3)在where to build the binaries里面选择要将opencv编译到的目录下面,我的是:H:/Edit_opencv3.2/opencv_bulid
(4)点击configure,在弹出的对话框内选择生成解决方案的工具版本(这里选择Visual Studio 2010 Win64或者Visual Studio 2010 )和default参数,点击finish
(5)finish后,可以看到配置所对应的name和value (在里面可以修改需要到的配置,比如可以去掉cuda的钩)
在其中找到Name为OPENCV_EXTRA_MODULES_PATH的参数,然后把它的Value设置为opencv_contrib的路径,我的是:H:/Edit_opencv3.2/opencv_contrib-3.2.0/modules
注意:opencv_contrib-3.2.0要下载与opencv版本相一致的,否则会在下一环节出现错误!
(6)点击Generate,等待完成。
2、用VS编译生成debug和release库
(1)用VS 2010打开H:/Edit_opencv3.2/opencv_bulid目录下的OpenCV.sln
(2)编译debug版本库:在“解决方案'OpenCV'(123个项目)”上面点击右键-->“重新生成解决方案”,编译完成后文件中会多出bin和lib文件夹。
(3)找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”-->“仅生成INSTALL”,然后就在H:\Edit_opencv3.2\opencv_bulid\install中出现了许多内容。
3、配置opencv项目
(1)配置环境变量
“我得电脑”-->“高级系统设置”-->“环境变量”
“用户变量”:Path: H:\Edit_opencv3.2\opencv_bulid\install\x64\vc10\bin
(2)在vs的属性管理器窗口中进行配置
在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(反键属性,或者双击)即可打开属性页面。
VC++目录-->包含目录,添加:
H:\Edit_opencv3.2\opencv_bulid\install\include
H:\Edit_opencv3.2\opencv_bulid_32\install\include\opencv
H:\Edit_opencv3.2\opencv_bulid_32\install\include\opencv2
VC++目录-->库目录,添加:
H:\Edit_opencv3.2\opencv_bulid\install\x64\vc10
H:\Edit_opencv3.2\opencv_bulid\install\x64\vc10\lib
H:\Edit_opencv3.2\opencv_bulid\install\x64\vc10\bin
链接器-->输入-->附加依赖项,添加:
opencv_aruco320d.lib
opencv_bgsegm320d.lib
opencv_bioinspired320d.lib
opencv_calib3d320d.lib
opencv_ccalib320d.lib
opencv_core320d.lib
opencv_datasets320d.lib
opencv_dpm320d.lib
opencv_face320d.lib
opencv_features2d320d.lib
opencv_flann320d.lib
opencv_fuzzy320d.lib
opencv_highgui320d.lib
opencv_imgcodecs320d.lib
opencv_imgproc320d.lib
opencv_line_descriptor320d.lib
opencv_ml320d.lib
opencv_objdetect320d.lib
opencv_phase_unwrapping320d.lib
opencv_photo320d.lib
opencv_plot320d.lib
opencv_reg320d.lib
opencv_rgbd320d.lib
opencv_saliency320d.lib
opencv_shape320d.lib
opencv_stereo320d.lib
opencv_superres320d.lib
opencv_surface_matching320d.lib
opencv_text320d.lib
opencv_video320d.lib
opencv_videoio320d.lib
opencv_videostab320d.lib
opencv_xobjdetect320d.lib
opencv_xphoto320d.lib