1、原料:
链接:https://pan.baidu.com/s/1Dr9epaWRz-n34I8QAhxrNA
提取码:ez6e
复制这段内容后打开百度网盘手机App,操作更方便哦
contrib库:https://github.com/opencv/opencv_contrib/releases
opencv版本:https://opencv.org/releases.html
我下载的:
(https://github.com/opencv/opencv/releases/tag/3.4.4)中的Source code
(https://github.com/opencv/opencv_contrib/releases/tag/3.4.4)中的Source code
2、傻瓜式安装cmake(注:选好自己所要安装的路径(随意路径))
3、重点来了:用cmake编译opencv3.4.4源码和扩展模块源码,然后在VS2015中安装和配置opencv3.4.4
双击打开cmake,如下图:在where is the source code中输入opencv3.4.4源码的解压路径,在where to bulid the binaries 中输入自己随意新建的某路径(编译后的opencv就在此路径中),点击下方的configure,弹出图3所示(选择需和图3同,所选的是64位--仅可用于VS的64位下的Debug和release,32位需选择相应的选项),点击finish开始配置环境完成后出现图4 configuring done。
接下来,需要将扩展模块opencv_contrib-3.4.4放入其中一起进行编译,如下图5,在OPENCV_EXTRA_MODULES_PATH中加入opencv_contrib-3.4.4所在的解压路径的modules路径(我的是D:\ruanjian\opencv\opencv_contrib-3.4.4\modules),并勾选OPENCV_ENABLE_NONFREE(否则扩展模块中有些功能不能用,具体参考https://blog.csdn.net/zhoukehu_CSDN/article/details/83145026)。设置好后再次点击左下方的Configure进行配置。
等到配置好后可看到没有红色部分,之后点击紧挨Configure的Generate按钮开始编译生成,等待出现图7即编译opencv全部完成完成。
在上一部分编译生成的路径中(即在cmake中where to bulid the binaries一栏输入路径)出现图8的OpenCV.sln(可用VS2015打开的工程),用装好的VS2015打开此文件。
在解决方案中可以查看工程目录,在图9中选择Debug或者release(看自己),和x64(必须),然后在CMakeTargets中有ALL_BUILD和INSTALL两项,然后选中ALL_BUILD右键可看到重新生成,左键点击重新生成,等待生成完成;之后选中INSTALL右键------仅用于项目(J)------左键点击仅生成INSTALL(B),等待安装完成后即得到可在VS中配置的opencv3.4.4版本(where to bulid the binaries一栏输入的路径的install中,我的是D:\ruanjian\opencv\opencv3.4.4_VSx64\install)。
(1)右键 我的电脑---属性----高级系统设置----环境变量-----系统变量-----Path-----编辑------新建------输入上一步得到的opencv的x64\vc14\bin目录(我的是D:\ruanjian\opencv\opencv3.4.4_VSx64\install\x64\vc14\bin)
(2)在VS中新建工程:文件-----新建-------项目-------win32控制台项目/MFC项目/..都可。如图10,找到此项目的属性管理器,选中Debug | x64(因为上一步安装opencv时选择的是Debug x64)右键新建属性表并随意命名(我的是PropertySheet_QT_opencv3.4.4_64debug),双击此属性表(此属性表可在另外新建的工程中调用,这样就不用反复配置),出现图11。
我们需要在 VC++目录-----包含目录 & 库目录 及 链接器-------输入 中进行配置,然后确定-----确定------确定。
VC++目录-----包含目录:加入上一部分得到的opencv的include目录,及include\opencv,和include\opencv2路径,我的如下:
D:\ruanjian\opencv\opencv3.4.4_VSx64\install\include
D:\ruanjian\opencv\opencv3.4.4_VSx64\install\include\opencv
D:\ruanjian\opencv\opencv3.4.4_VSx64\install\include\opencv2
VC++目录----- 库目录:加入上一部分得到的opencv的x64\vc14\lib目录,我的如下:
D:\ruanjian\opencv\opencv3.4.4_VSx64\install\x64\vc14\lib
链接器-------输入:加入 VC++目录----- 库目录中路径下的所有lib文件,我的如下(debug版,release版344后没有d):
opencv_aruco344d.lib
opencv_bgsegm344d.lib
opencv_bioinspired344d.lib
opencv_calib3d344d.lib
opencv_ccalib344d.lib
opencv_core344d.lib
opencv_datasets344d.lib
opencv_dnn_objdetect344d.lib
opencv_dnn344d.lib
opencv_dpm344d.lib
opencv_face344d.lib
opencv_features2d344d.lib
opencv_flann344d.lib
opencv_fuzzy344d.lib
opencv_hfs344d.lib
opencv_highgui344d.lib
opencv_img_hash344d.lib
opencv_imgcodecs344d.lib
opencv_imgproc344d.lib
opencv_line_descriptor344d.lib
opencv_ml344d.lib
opencv_objdetect344d.lib
opencv_optflow344d.lib
opencv_phase_unwrapping344d.lib
opencv_photo344d.lib
opencv_plot344d.lib
opencv_reg344d.lib
opencv_rgbd344d.lib
opencv_saliency344d.lib
opencv_shape344d.lib
opencv_stereo344d.lib
opencv_stitching344d.lib
opencv_structured_light344d.lib
opencv_superres344d.lib
opencv_surface_matching344d.lib
opencv_text344d.lib
opencv_tracking344d.lib
opencv_video344d.lib
opencv_videoio344d.lib
opencv_videostab344d.lib
opencv_xfeatures2d344d.lib
opencv_ximgproc344d.lib
opencv_xobjdetect344d.lib
opencv_xphoto344d.lib
至此,全部完成。
4、测试
在上一步配置好的工程的Source Files中右键 添加---新建项----C++文件(.cpp),然后在此文件中输入如下内容:
#include
using namespace cv;
void main()
{
Mat srcImg=imread("1.jpg");//注意输入绝对路径时,要用左斜杠(/),否则出错
imshow("image",srcImg);//显示图像
waitKey(0);//等待任意按键按下
}
然后保存,点击 本地Windows调试器,这样就可以看到美美的图片啦 #^-^#
也可尝试在opencv3.4.4源码的...\samples\cpp中的一些例子,注意这些例子中的main(int argc,char *argv[],char **env)中的参数,参见下一篇,我们下篇见~
5、注意:
cmake中在配置环境时出现问题,
https://www.cnblogs.com/ilym/p/8626763.html
https://blog.csdn.net/z137628817/article/details/70159043
有关nonfree文件,可参考:
https://blog.csdn.net/zhoukehu_CSDN/article/details/83145026