- 下载软件
软件:vs2017
网址:https://visualstudio.microsoft.com/zh-hans/vs/whatsnew/
软件:opencv-3.4.1
网址:https://opencv.org/releases.html
软件:cmake-3.11(下载解压版本即可)
网址:https://cmake.org/files/
软件:opencv_contrib-3.4.1
网址:https://github.com/opencv/opencv_contrib/releases/tag/3.4.1
软件:doxygen
网址:https://sourceforge.net/projects/doxygen/files/
- vs2017安装
工作负载:
勾选项
1、使用 c++ 的桌面开发;
2、visual studio 扩展开发
单个组件:
勾选项
1、适用于 Windows 的 Git
2、Help Viewer
注:还需要安装2015支持
如何补齐VS2017未安装的功能:(用于安装没有安装的功能)
https://blog.csdn.net/changfeng6616/article/details/81304034
- doxygen安装
在doxygen官网下载doxygen-1.8.14-setup.exe,运行安装。默认安装即可。
- openCV编译
(1)cmake配置
a. 解压cmake至安装目录(自定义);
b. 在cmake-3.11.1-win64-x64\bin目录下运行cmake-gui.
c. cmake运行界面:
(2)openCV源码解压
(3)where is the source code
选择下载的opencv源文件(本例中选择E:\Program Files\opencv-3.4.1\src\opencv-3.4.1)(依具体路径配置(2)中配置)
(3)创建openCV编译文件夹
新建文件夹(本例中“E:\Program Files\opencv-3.4.1”下新建文件夹build_win64)。
(4)where to build the binaries
编译之后存放的位置选择(本例中选择刚建立的文件夹E:\Program Files\opencv-3.4.1 \build_win64)
(5)平台配置并编译
点击cmake软件左下角的configure;
选择 visual studio 15 2017 win64,然后点finish。
(6)opencv_contrib-3.4.1配置
运行结束后,在name栏中找到BUILD_TESTS和BUILD_PERF_TESTS取消勾选;
找到BUILD_DOCS勾选;
找到OPENCV_EXTRA_MODULES_PATH在value栏中添加opencv_contrib-3.4.1的modules路径: E:\Program Files\opencv-3.4.1\src\opencv_contrib-3.4.1(依具体情况确定路径)。
是否生成opencv_world.lib是要自己勾选的。opencv_world.lib只是所有lib的一个打包,在使用的时候,直接在附加依赖项添加这一个就可以,主要是为了比较方便。没有这个的话,把其他所有的lib文件全添加是一个效果。
一般实际工程中不需要opencv_world,会造成比较大量的冗余。
点configure多次运行完后全部为白色;
点击Generate;
完成后再点open Project;
若Open Project不可用,则在编译路径E:\Program Files\opencv-3.4.1\build_win64下找到OpenCV.sln,并打开。
(7)编译
在解决方案中找到CmakeTargets,下面有个install,右键点击生成build(建议先“清理”,再“重新生成”)。
Debug模式
Release 模式
(8)生成帮助文档
在解决方案中找到doxygen,右键点击生成build。完成后F:\opencv\ opencv3.4.1\mybuild_64\doc\doxygen\html中会生成帮助文件。
- 配置环境变量
计算机-属性-高级系统设置-高级,下面有个环境变量点进去,找到系统变量下的Path,添加build_win64\install\x64\vc15\文件夹下bin的路径E:\Program Files\opencv-3.4.1\build_win64\install\x64\vc15\bin
- vs配置openCV
(1)打开VS2017,点击文件-新建-项目,已安装下的Visual C++展开,常规,空项目,点确定即可新建空工程。
(2)在VS2017右边有解决方案点击源文件,右键,添加-新建项,选择C++文件,点击右下角,添加。
(3)选择视图-其他窗口-属性管理器,然后右边的工程那儿点击 属性管理器,展开DEBUG|X64,看到有个Microsoft.Cpp.x64.user,右键点击,选择属性。
(4) 通用属性-VC++目录,点击包含目录右边,选择,编辑,然后把三个文件夹添加进去(根据具体的安装路径安装):
E:\Program Files\opencv-3.4.1\build_win64\install\include
E:\Program Files\opencv-3.4.1\build_win64\install\include\opencv
E:\Program Files\opencv-3.4.1\build_win64\install\include\opencv2
(5)库目录,把build_win64\install\x64\vc15文件夹下的lib添加进去:
E:\Program Files\opencv-3.4.1\build_win64\install\x64\vc15\lib
(6)左边通用属性-链接器-输入-附加依赖项(可以按需要,选择” E:\Program Files\opencv-3.4.1\build_win64\install\x64\vc15\lib”下的部分lib库, 如下部分示例):
opencv_aruco341d.lib
opencv_bgsegm341d.lib
opencv_bioinspired341d.lib
opencv_calib3d341d.lib
opencv_ccalib341d.lib
opencv_core341d.lib
opencv_datasets341d.lib
opencv_dnn341d.lib
opencv_dnn_objdetect341d.lib
opencv_dpm341d.lib
opencv_face341d.lib
opencv_features2d341d.lib
opencv_flann341d.lib
opencv_fuzzy341d.lib
opencv_hfs341d.lib
opencv_highgui341d.lib
opencv_imgcodecs341d.lib
opencv_imgproc341d.lib
opencv_img_hash341d.lib
opencv_line_descriptor341d.lib
opencv_ml341d.lib
opencv_objdetect341d.lib
opencv_optflow341d.lib
opencv_phase_unwrapping341d.lib
opencv_photo341d.lib
opencv_plot341d.lib
opencv_reg341d.lib
opencv_rgbd341d.lib
opencv_saliency341d.lib
opencv_shape341d.lib
opencv_stereo341d.lib
opencv_stitching341d.lib
opencv_structured_light341d.lib
opencv_superres341d.lib
opencv_surface_matching341d.lib
opencv_text341d.lib
opencv_tracking341d.lib
opencv_video341d.lib
opencv_videoio341d.lib
opencv_videostab341d.lib
opencv_xfeatures2d341d.lib
opencv_ximgproc341d.lib
opencv_xobjdetect341d.lib
opencv_xphoto341d.lib
(7)关闭VS2017,如果提示是否保存配置之类的都点确定,然后再重新打开VS2017,打开刚才新建的工程,在源文件里写下测试代码(复制下面的就行,注意下面程序中的图片路径选择你自己的图片路径)。注意运行程序时选择DEBUG,以及X64,因为整个环境是配的debug64位的。
代码:
#include<opencv2\opencv.hpp>
#include<iostream>
#include<math.h>
using namespace cv;
int main(int argc, char** argv)
{
Mat src;
src = imread("C:/Users/12897/Desktop/timg.jpg");
if (!src.data)
{
printf("could not load image...\n");
return -1;
}
namedWindow("imput image", CV_WINDOW_AUTOSIZE);
imshow("imput image", src);
waitKey(0);//键盘按任意键关闭
return 0;
}
运行成功后配置完成。
注:1如果选择编译release下的工程,重复步骤6.(1) – 6.(7),注意其中涉及到“debug”的项转换为对应的“release”项。
2可使用OpenCV_github代替OpenCV3.4.1,用Contrib_github代替opencv_contrib-3.4.1,配置过程中分别在Debug和Release模式下对install进行build,其他配置步骤相同。这种方式可以更方便的查看源代码。
注: 加库的时候注意区分。所有的库都加进去的时候会出现两个窗口, 一个debug, 一个release
全部的库文件,包含debug和release版的。
opencv_aruco341.lib
opencv_aruco341d.lib
opencv_bgsegm341.lib
opencv_bgsegm341d.lib
opencv_bioinspired341.lib
opencv_bioinspired341d.lib
opencv_calib3d341.lib
opencv_calib3d341d.lib
opencv_ccalib341.lib
opencv_ccalib341d.lib
opencv_core341.lib
opencv_core341d.lib
opencv_datasets341.lib
opencv_datasets341d.lib
opencv_dnn341.lib
opencv_dnn341d.lib
opencv_dnn_objdetect341.lib
opencv_dnn_objdetect341d.lib
opencv_dpm341.lib
opencv_dpm341d.lib
opencv_face341.lib
opencv_face341d.lib
opencv_features2d341.lib
opencv_features2d341d.lib
opencv_flann341.lib
opencv_flann341d.lib
opencv_fuzzy341.lib
opencv_fuzzy341d.lib
opencv_hfs341.lib
opencv_hfs341d.lib
opencv_highgui341.lib
opencv_highgui341d.lib
opencv_imgcodecs341.lib
opencv_imgcodecs341d.lib
opencv_imgproc341.lib
opencv_imgproc341d.lib
opencv_img_hash341.lib
opencv_img_hash341d.lib
opencv_line_descriptor341.lib
opencv_line_descriptor341d.lib
opencv_ml341.lib
opencv_ml341d.lib
opencv_objdetect341.lib
opencv_objdetect341d.lib
opencv_optflow341.lib
opencv_optflow341d.lib
opencv_phase_unwrapping341.lib
opencv_phase_unwrapping341d.lib
opencv_photo341.lib
opencv_photo341d.lib
opencv_plot341.lib
opencv_plot341d.lib
opencv_reg341.lib
opencv_reg341d.lib
opencv_rgbd341.lib
opencv_rgbd341d.lib
opencv_saliency341.lib
opencv_saliency341d.lib
opencv_shape341.lib
opencv_shape341d.lib
opencv_stereo341.lib
opencv_stereo341d.lib
opencv_stitching341.lib
opencv_stitching341d.lib
opencv_structured_light341.lib
opencv_structured_light341d.lib
opencv_superres341.lib
opencv_superres341d.lib
opencv_surface_matching341.lib
opencv_surface_matching341d.lib
opencv_text341.lib
opencv_text341d.lib
opencv_tracking341.lib
opencv_tracking341d.lib
opencv_video341.lib
opencv_video341d.lib
opencv_videoio341.lib
opencv_videoio341d.lib
opencv_videostab341.lib
opencv_videostab341d.lib
opencv_xfeatures2d341.lib
opencv_xfeatures2d341d.lib
opencv_ximgproc341.lib
opencv_ximgproc341d.lib
opencv_xobjdetect341.lib
opencv_xobjdetect341d.lib
opencv_xphoto341.lib
opencv_xphoto341d.lib