首先,讲一下我的环境:win10专业版10586+vs2013中文版+openCv 3.0.0
在配置的过程中,也参考了其他的文章,所以并不能完全算是原创。参考的是这里的:
http://www.bubuko.com/infodetail-793518.html
还有百度经验。
前面的步骤也是一样的,首先是去OPENCV的官网下进行下载windows版本的opencv 这里下载,我写这篇文章的时候,下的版本是3.0.0,下好之后进行提取。提取的目录随意,我放到的就是D盘根目录下面:
之后设置环境变量,新建一个系统变量
变量名是:OPENCV,变量值是build所在的目录,我这里的是
这个是OPENCV的目录,以后opencv路径改了就修改这个变量就行。
接下来在已有的系统环境变量里面找到Path环境变量,双击,点击新建添加一项,添加完了之后如下:
然后确定,保存,确定,之后把电脑重启一遍使环境变量生效!
接下来新建一个文本文件,命名为opencv300.props:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>$(OPENCV)\include;$(IncludePath)</IncludePath>
<LibraryPath Condition="'$(Platform)'=='Win32'">$(OPENCV)\x86\vc12\lib;$(OPENCV)\x86\vc12\staticlib;$(LibraryPath)</LibraryPath>
<LibraryPath Condition="'$(Platform)'=='X64'">$(OPENCV)\x64\vc12\lib;$(OPENCV)\x64\vc12\staticlib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link Condition="'$(Configuration)'=='Debug'">
<AdditionalDependencies>opencv_ts300d.lib;opencv_world300d.lib;IlmImfd.lib;libjasperd.lib;libjpegd.lib;libpngd.lib;libtiffd.lib;libwebpd.lib;opencv_calib3d300d.lib;opencv_core300d.lib;opencv_features2d300d.lib;opencv_flann300d.lib;opencv_highgui300d.lib;opencv_imgcodecs300d.lib;opencv_imgproc300d.lib;opencv_ml300d.lib;opencv_objdetect300d.lib;opencv_photo300d.lib;opencv_shape300d.lib;opencv_stitching300d.lib;opencv_superres300d.lib;opencv_ts300d.lib;opencv_video300d.lib;opencv_videoio300d.lib;opencv_videostab300d.lib;zlibd.lib;%(AdditionalDependencies)
</AdditionalDependencies>
</Link>
<Link Condition="'$(Configuration)'=='Release'">
<AdditionalDependencies>opencv_ts300.lib;opencv_world300.lib;IlmImf.lib;ippicvmt.lib;libjasper.lib;libjpeg.lib;libpng.lib;libtiff.lib;libwebp.lib;opencv_calib3d300.lib;opencv_core300.lib;opencv_features2d300.lib;opencv_flann300.lib;opencv_highgui300.lib;opencv_imgcodecs300.lib;opencv_imgproc300.lib;opencv_ml300.lib;opencv_objdetect300.lib;opencv_photo300.lib;opencv_shape300.lib;opencv_stitching300.lib;opencv_superres300.lib;opencv_ts300.lib;opencv_video300.lib;opencv_videoio300.lib;opencv_videostab300.lib;zlib.lib;%(AdditionalDependencies)
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
这里值得一提的是,文件名里的300和文件中的debug对应的300d和release对应的300都是指的Opencv的版本号,如果你的版本不是3.0.0的话请改成对应的版本号。
上面代码显示不全,但是直接点代码段的复制按钮复制下来是全的。
这个属性设置的一系列动作就是等同于这个里面对工程的一系列设置。怎么用我们等儿再说。
接下来的操作就是打开VS,然后新建一个空项目,然后在项目属性设置导入刚才的那个prop文件即可:
(上面那张图是盗的)如果找不到项目属性这个窗口,那么这个窗口是在视图-其他窗口这里:
好,现在配置就完成了,我们新建一个source.cpp,写一个demo读取一张图片并显示:
#include <opencv2\opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("pp.jpg");
if (img.empty())
{
cout << "error";
return -1;
}
imshow("pp的靓照", img);
waitKey();
return 0;
}
注意这里要把pp.jpg放到和工程一个文件夹下,这个不用多说吧。
编译运行,就可以得到一副图片显示,那么配置应该就算成功了:
中间可能会出现的问题:
1.有警告,是关于某几个.hpp文件编码的,把他们用notepad++转换为ANSI编码就行(如果是英文VS或者英文系统的话我觉得可能就不会出这个问题)
2.导入属性配置文件不成功,说是XXX可能会导致循环继承之类的话,检查下你的.props配置文件或者你的配置路径是不是有中文,特别是配置文件里的双引号和单引号也不能是中文的单引号和双引号。
总的来说采用这个办法我个人认为是比较简单的,但是也可以用中间提到的那种自己逐项手动配置的办法,比较麻烦,而且我用那个方法没成功,捣鼓了半天还是提示没找到链接文件,而用这种方法几乎是立马就配好了,除了中间因为中文的关系出了一点点问题。
就我个人这次配置情况来看,我推荐使用props文件导入的方式进行项目配置。