推荐去GitHub上下载吧,地址,点进去之后,选择对应模块,找到release,如下图所示,点击,然后下载对应版本,这里选择opencv3.4.4版本的。
同理可下载opencv-contrib模块,切记,切记,两者的版本要一直,这里都是3.4.4。如下图所示(点zip就可以下载了)。
将上述得到的两个文件解压。如下图所示。请注意,其中有个文件是.exe,不要紧张,和安装的文件不同,其实就是一个解压过程。这里我都将其解压到D:\OpenCV\opencv-3.4.4,你可以自己重新设置自己的目录,不过一定要记住,后面要用。
由于我电脑上已经有了cmake,这里我就不说明cmake的安装过程了,网上有很多教程。
我这里使用的是vs2017的专业版,当然肯定是破解的了。vs的安装很简单,自行百度吧。
在cmake编译过程中,会下载很多东西,而且又是外网,很多时候会下载失败,所以推荐使用吧。
如下图所示,设置source文件目录,我这里是D:\OpenCV\opencv-3.4.4\opencv\sources;设置你编译好以后的文件存储目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake。
第一次configure
设置目录以后,点击configure会让你配置你需要编译的格式,我这里选择的是visual studio 15 2017-win64,表示使用vs2017,win64系统。接下来就可以第一次configure了。
第二次configure
在完成了第一次configure以后,需要将OPENCV_ETREA_MOUDLES_PATY的路径更改为之前解压的contrib文件下的moudles文件路径,我这里设置为:D:\OpenCV\opencv-3.4.4\opencv_contrib-3.4.4\modules,如下图所示。设置完成后,再点击configure。
多次configure
有可能两次configure后,cmake目录中仍然有很多选项显示为红色,如上图所示,这应该是下载文件的过程中失败了,需要多次点击configure进行配置,不然很有可能之后生成的东西缺失,导致某些功能不能使用,最后当所有的选项都显示为白色时,表示成功了。
在configure成功之后,窗口会提示configure done,接下来就可以点击generate了,当显示generate done表示生成成功。
默认会使用vs2017打开OpenCV.sln文件,打开之后如下图所示,点击生成,则开始生成文件,这个过程比较慢,我的机子用了半个小时左右。
生成成功后如下图所示,我这里是重新生成的。
之后在D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\modules(你的目录可能和我不一样,应和之前你在cmake时设置的文件目录一致)目录中查看是否有xfeature文件夹。如下图所示。如果没有,那么就说明之前的步骤有问题。
在环境变量path中添加install文件下的bin目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\x64\vc15\bin,x64表示64位,vc15表示vs2017。
打开vs2017,新建一个项目。点击视图–>其他窗口–>属性管理器,打开属性属性管理器,在Debug|64上右键(因为之前我们在cmake的时候选择的是64位的,所以要新建的属性页也是64为Debug的),新建属性页,我这里设置名字为opencv_contrib-3.4.4。(有可能你在很多教程中看的的不是这种配置方式,可能是点击项目的属性页来配置的,这样做比较麻烦,每次新建项目的时候都需要重新配置,而采用我这种方式,只需要每次新建项目后导入该属性页后就可以使用了,是一种一劳永逸的方法)
VC++目录–包含目录
设置VC++目录下的包含目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\include、D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\include\opencv、D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\include\opencv2。
VC++目录–库目录
设置VC++目录–库目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\x64\vc15\lib
链接器–输入–依赖项
设置链接器–输入–依赖项,实际上就是添加上一步lib文件下的所有文件,3.4.4版本为:
opencv_aruco344d.lib
opencv_bgsegm344d.lib
opencv_bioinspired344d.lib
opencv_calib3d344d.lib
opencv_ccalib344d.lib
opencv_core344d.lib
opencv_datasets344d.lib
opencv_dnn344d.lib
opencv_dnn_objdetect344d.lib
opencv_dpm344d.lib
opencv_face344d.lib
opencv_features2d344d.lib
opencv_flann344d.lib
opencv_fuzzy344d.lib
opencv_hfs344d.lib
opencv_highgui344d.lib
opencv_imgcodecs344d.lib
opencv_imgproc344d.lib
opencv_img_hash344d.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
调加完依赖项后,点击应用,属性页就配置完成了,以后在新的项目中就可以直接使用该属性页进行配置。至此全部配置就已完成,下面就测试一下。
使用一下代码进行测试,主要是一个显示图片的功能。
#include
#include
#include
using namespace cv;
int main()
{
Mat img = imread("E:/zengtudou/myOpenCV/testfor3.4.4/Project1/girl.jpg");//读入一张图片
namedWindow("Test"); //创建一个名为Test窗口
imshow("Test", img); //窗口中显示图像
waitKey(0);
}
来一张经典的图像处理的图片吧。
有时候,当你确定完成上面的步骤可能会报错,这时候需要重启下vs2017就可以解决了。
参考文章:
https://elody-07.github.io/opencv3.4.1+contrib+cmake3.11.0
https://blog.csdn.net/weixin_37800680/article/details/72566294
https://blog.csdn.net/kuweicai/article/details/78046257