win+vs下opencv安装与说明

win+opencv+vs安装。一劳永逸配置,每次创建新项目无需修改。

因为刚接触opencv,再加上对VS不熟悉,所以刚接触时候有些抽象,故记录下来。

装机环境:win10-64位,opencv346,VS2017

opencv电子书:https://pan.baidu.com/s/1onI6f7P2J8XPV_vsSByKYw 提取码:kmpu

opencv的下载

从官网下载http://opencv.org/releases.html ,Windows选择Win Pack。

**首先opencv像python里的module一样,只是一个文件夹而已,而不是传统意义上的软件,所以从opencv官网下载下来的opencv虽然是一个.exe,但实际上只是一个压缩包,下载之后运行exe直接会显示解压的路径,解压的路径即是安装的路径。**解压的目录是有opencv根目录的,所以不必填写opencv字样,但为方便可以写明opencv版本。

我放在了E:\opencv346\下,所以我的opencv目录是E:\opencv346\opencv\,后面配置的时候注意区别自己的目录前缀。

解压好后在win中配置环境变量(可视情况省略),在VS中配置包含目录include,在VS中配置库目录lib,在VS中配置附加依赖项。即完成了opencv在win和VS中的配置

opencv文件目录

我们下载opencv后可以看看opencv大概的文件目录。

opencv
----build
----bin
-----include(配置的include)
---------opencv
---------opencv2
---------x64(配置的bin,lib在这里)
----sources

opencv里有build和sources两个主文件夹。

sources里是opencv的源代码或相关文件,如果仅仅是希望将opencv写的程序在程序中运行并想节省硬盘空间,就只需要build里面的内容

在build里bin,include,X64等文件。

include里有opencv和opencv2,前者包含旧版的.h头文件,后者包含新版的.h头文件。opencv2里的内容解读如下

(1)【calib3d】———Calibration(校准)和3D这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容,包括基本的多视角几何算法、单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建等。
(2)【contrib】———Contribute/Experimental Stuf的缩写。该模块包含了一些不太稳定的可选功能,比如人脸识别、立体匹配、人工视网膜模型等技术。

(3)【core】———核心功能模块,包含如下内容:
OpenCV基本数据结构
动态数据结构
绘图函数
数组操作相关函数
辅助功能与系统函数和宏
与OpenGL的互操作
(4)【imgproc】———Image 和Process 这两个单词的缩写组合,图像处理模块。包含如下内容:
线性和非线性的图像滤波,图像的几何变换,其他的图像变换,直方图相关,结构分析和形状描述,运动分析和对象跟踪,特征检测> 目标检测等内容
(5)【feature2d】———2D功能框架。包含如下内容:
特征检测和描述
特征检测器(Fearure Detectors) 通用接口
描述符提取器(Description Extractors) 通用接口
描述符匹配器(Description Eatchers) 通用接口
通用描述符(Generic Description)匹配器通用接口
关键点绘制函数和匹配功能绘制函数
(6)【flann】———Fast Library For Approximate Nearest Neighbors,高维的近似近邻快速搜索算法库,包含以下两个部分:
快速近似最近邻搜索
聚类
(7)【GPU】———运用GPU加速的计算机视觉模块。
(8)【highgui】———高层GUI图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频的解码编码、图形交互界面的接口等内容。
(9)【legacy】———一些已经废弃的代码库,保留下来作为向下兼容,包含如下内容:
运动分析,期望最大化,直方图,平面细分(C API),特征检测和描述(Feature Detection and Description),描述符提取器(Description Dxtractor)的通用接口,通用描述符(Generic Description Matchers)的常用接口,匹配器
(10)【ml】———Machine Learning,机器学习模块, 基本上是统计模型和分类算法,包含如下内容:
统计模型 (Statistical Models),一般贝叶斯分类器 (Normal Bayes Classifier),K-近邻 (K-NearestNeighbors),支持向量机 (Support Vector Machines),决策树 (Decision Trees),提升(Boosting),梯度提高树(Gradient Boosted Trees),随机树 (Random Trees),超随机树 (Extremely randomized trees),期望最大化 (Expectation Maximization),神经网络 (Neural Networks),MLData
(11)【nonfree】———一些具有专利的算法模块 ,包含特征检测和GPU相关的内容。最好不要商用。
(12)【objdetect】———目标检测模块,包含Cascade Classification(级联分类)和Latent SVM这两个部分。
(13)【ocl】———即OpenCL-accelerated Computer Vision,运用OpenCL加速的计算机视觉组件模块。
(14)【photo】———Computational Photography,包含图像修复和图像去噪两部分。
(15)【stitching】———images stitching,图像拼接模块,包含如下部分:
拼接流水线,特点寻找和匹配图像,估计旋转,自动校准,图片歪斜,接缝估测,曝光补偿,图片混合
(16)【superres】———SuperResolution,超分辨率技术的相关功能模块。
(17)【ts】———opencv测试相关代码,不用去管。
(18)【video】———视频分析组件,该模块包括运动估计,背景分离,对象跟踪等视频处理相关内容。
(19)【Videostab】———Video stabilization,视频稳定相关的组件,官方文档中没有多作介绍,不管它了。

即opencv是作为代码融合组合起来的一个SDK。

1.在win中配置环境变量

在系统中配置环境变量。计算机右键–属性–高级系统设置–高级–环境变量–双击PATH–加入下面的值,如果是当行显示的话 注意用分号;分隔。

我64位系统配置的是 E:\opencv346\opencv\build\x64\vc15\bin

也可以同时把32位的内容添加进去 opencv\build\x86\vc10\bin

此处vc15对应的是VS2017,若有vc14是对应的VS2015。若是32位系统,需配置x86里的环境bin。对于64位系统可以都添加,我的目的比较明确,使用x64的release,所以只配置64的。另外注意别把bin配置成build下的bin目录,而是x64下的。

2.在VS17中配置opencv

简单创建一个工程,或用现有的工程

为了以后新创建工程的时候无需重复配置(一次性的是在项目右键属性里配置的),此处使用一劳永逸的方法,即打击:视图=》其他窗口=》属性管理器。

外链图片转存失败(img-aC8lVCMu-1562492695438)

然后看你是在debug下还是在release下使用VS,可以都配置了。本人此次用的是release下的。

直接在文件夹上右键属性或者在文件夹下的Microsoft.Cpp.x64.user双击或者右键属性。

VS中经常配置的地方是VC++目录里的可执行文件目录,包含目录,库目录,分别对应bin,include和lib

外链图片转存失败(img-WegXyy4H-1562492695454)

2.1配置包含目录include

添加类似的如下目录

E:\opencv346\opencv\build\include

E:\opencv346\opencv\build\include\opencv

E:\opencv346\opencv\build\include\opencv2

2.2配置库目录lib

添加类似目录:

E:\opencv346\opencv\build\x64\vc15\lib

vc代表的是VS2017,vc14代表的是VS2015。

注:在编译的时候出现:LINK:fatal error LNK1104:无法打开文件“opencv_calib3d249.lib”之类的错误是因为没有选择好32位还是64位或lib路径不正确。

2.3配置附加依赖项

在连接器–输入–附加依赖项下添加内容

添加刚才在添加的库目录E:\opencv346\opencv\build\x64\vc15\lib下的内容,主要是2个lib。

该目录下有opencv_world346.libopencv_world346d.lib 。d代表debug版本。不带d是release。

我们此时配置的是release,所以只要最后不带d的一个就行。

opencv2.4.8下不只两个,有19+19个。这也是OpenCV2和OpenCV3的区别,OpenCV3合并了一些库。

bug解决

若出现无法启动此程序,因为计算机中丢失opencv_core248d.dll....错误,解决方案是把相关的dll(build\x86=vc10\bin\全部)都复制到Windows操作系统目录下。如果Windows安装在C盘,那么32位系统的放置路径就是C:\Windows\System32,64位的地址是C:\Windows\SysWOW64+

后记

以上配置还有另外的.props方法(没什么必要):

大概方法是在刚才是属性管理器里,右键Debug|x64->添加新项目属性表,随意命名,点击添加。右键刚才添加自己命名的文件,然后把include,lib,附加依赖性配置了。这样生成的.props在这个项目文件目录下面,可以把它复制到其他地方,以后新建项目直接导入即可。

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值