安装Visual Studio
在百度上搜索即可找到Visual Studio的官网
在百度上搜索Visual Studio就会出现Visual Studio的官网,
选择Visual Studio的社区版(Community)即可免费使用
选择SDK
如果你只希望使用Visual Studio来学习OpenCV,那么选择C++的桌面开发即可
安装OpenCV
使用百度搜索OpenCV即可找到其官网
进入其官网选择Releases(发行版本)
选择需要的版本(推荐3.4.0,以下教程将使用3.4.0),选择WinPack
下载安装
OpenCV将安装包托管在sourceforge,但是在中国大陆没有sourceforge的服务器或镜像,它默认会选择离我们最近的台湾一家机构的镜像.正常情况下等待5秒后会自动下载,当网络状况不好时可能会下载失败,可以点击下面红框选择其他机构的镜像下载.也可以尝试下面的替代链接
选择安装的位置
点击红框位置可以选择安装位置
添加环境变量
打开此电脑,选择”计算机”选项卡,找到”属性”并点击
选择高级系统设置
选择环境变量
选择下面的系统变量选择path并点击下面的编辑
创建环境变量
首先点击”新建”,然后点击”浏览”,浏览到”~\opencv\build\x64\vc15\bin”,”~”代表安装目录,我的安装目录是”D:\OpenCV”,所以浏览到”D:\OpenCV\opencv\build\x64\vc15\bin”
注:OpenCV 3.4.0的”x64”文件夹下有两个文件夹:”vc14”和”vc15”,如果使用Visual Studio 2017最好使用”vc15”
配置属性表
创建一个控制台应用程序
找到属性管理器配置64位的Debug模式和Release模式
鼠标右键选择”添加新项目属性表”(首先选择”Debug|x64”)
填写名字和保存路径
因为这个属性表创建以后可以供其他OpenCV项目使用,所以最好取个看得懂的名字和保存在找得到的位置,以后只需要”添加现有属性表”就可以导入这个属性表了
VC++目录配置
在VC++目录下配置两项配置项,分别是:”包含目录”和”库目录”. 包含目录填写下列信息(“~”用自己的安装目录替代): ~\opencv\build\include;~\opencv\build\include\opencv;~\opencv\build\include\opencv2 注意:不同路径用”;”隔开 库目录填写一下信息(“~”用自己的安装目录替代): ~\opencv\build\x64\vc15\lib (vc15-改->vc14)
链接器配置
链接器只需要配置一项配置项:”附加依赖项”,填写一下内容: opencv_world340d.lib (340-改->345(文件中存在的实际情况)) 注意:在Debug的配置下一定是opencv_world340d.lib
左上角选择release,添加附加依赖项: opencv_objdetect2413.lib; opencv_ts2413.lib; opencv_video2413.lib; opencv_nonfree2413.lib; opencv_ocl2413.lib; opencv_photo2413.lib; opencv_stitching2413.lib; opencv_superres2413.lib; opencv_videostab2413.lib; opencv_calib3d2413.lib; opencv_contrib2413.lib; opencv_core2413.lib; opencv_features2d2413.lib; opencv_flann2413.lib; opencv_gpu2413.lib; opencv_highgui2413.lib; opencv_imgproc2413.lib; opencv_legacy2413.lib; opencv_ml2413.lib
Release|x64配置
Release|x64配置与Debug|x64配置步骤是一样的,这里不再赘述,只有链接器的配置有一点不同:在附加依赖项填入 opencv_world340.lib --->345
测试是否成功
找一张图片存放在一个位置,使用以下代码将显示一张图片 #include "pch.h" #include <opencv.hpp> using namespace cv; int main() { String path = "01.jpg";// 填入你的图片存放路径 Mat srcImage; //srcImage 保存图片路径 srcImage = imread(path); imshow("显示图像", srcImage); //敲键盘任意键关闭图片窗口 waitKey(); //敲击任意键后触发后续操作,如:将图片的处理结果另存为2222.jpg
imwrite("2222.jpg",srcImage);
return 0;
}