您的位置:首页 > 运维架构

学习笔记05·安装配置opencv--64位w…

2017-04-01 19:05 351 查看
caffe安装系列——安装OpenCV
http://blog.csdn.net/xuezhisdc/article/details/48691797 http://blog.csdn.net/haoji007/article/details/52081273

opencv下载地址https://sourceforge.net/projects/opencvlibrary/files/opencv-win/
(1)下载最新版后,然后安装(也就是解压缩)到某个地方(个人推荐解压到硬盘的根目录)。解压完成后,可以得到如下的目录结构(版本不同,可能会有一些差别),我这里VS是2013的,所以下载了3.0.0的opencv


(2)配置环境变量:我的电脑右键--属性--高级系统设置--环境变量,双击“path”在其中添加:;D:\opencv\build\x64\vc12\bin,注意根据自己实际情况填写路径,并用分号隔开。
vc10, vc11, vc12 分别表示VS2010, VS2012,
VS2013的Visual
Studio使用的编译器版本,根据自己的VS版本来填写正确的编译器版本号。x86,x64表示系统位数,根据实际情况设置。


(3)配置VS:打开VS,创建一个新项目。
文件
-> 新建 -> 项目 -> Visual C++ -> Win32
控制台应用程序(输入名称test)

确定 -> 下一步 -> 附加选项选“空项目” ->
完成



(4)配置VS:配置Debug:(这里的配置虽然也可用,但并不是永久的,也有很大局限性,后面再说更通用的)
视图--其他窗口--属性管理器
右键DEBUG--添加新项目属性表--创建一个属性表--opencv_debug_300.props,双击它开始编辑。




《1》设置包含目录

 包含目录
-> 编辑,添加这三个目录到包含目录下:(目录地址改为自己实际的地址)

D:\Program
Files\opencv\build\include

D:\Program
Files\opencv\build\include\opencv

D:\Program
Files\opencv\build\include\opencv2




《2》设置库目录

同样的操作添加

D:\Program
Files\opencv\build\x86\vc12\lib

D:\Program
Files\opencv\build\x86\vc12\staticlib


《3》链接器
-> 附加依赖项 -> 编辑,复制--粘贴--确定


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_video300d.lib

opencv_videoio300d.lib

opencv_videostab300d.lib

zlibd.lib

这里链接时使用到的库。 这里有两点需要注意:

1. 各个版本的opencv链接的库文件不一样,这里适用于
opencv3.0.0(alpha/rc1)版本。


2. 现在我们添加进的是
debug使用的库,可以发现每个lib文件文件名后有一个“d”,表示debug。所以下一步我们在添加release版本的时候,添加的链接库和上面的一样,只是后面没有“d“。

(4)配置VS:配置Release:

同样也是三步:《1》设置包含目录《2》设置库目录《3》链接器
-> 附加依赖项 -> 编辑

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_video300.lib

opencv_videoio300.lib

opencv_videostab300.lib

zlib.lib

(5)测试是否配置成功。

这里在网上找了一个测试程序http://www.bubuko.com/infodetail-793518.html

在E:\opencvP\test\test放入一张图片,这个地址根据自己工程建立的地址灵活修改:



回到VS,项目--添加新项--输入文件名--确定



打开该文件,复制代码进去

#include

#include

#include

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;

}

然后,启动调试(快捷键F5)




这时就出现了这张图片,表示配置成功。

(6)出现一点小插曲,第一次运行时候出现了错误:

error LNK2019: 无法解析的外部符号_cvReleaseImage,该符号在函数_main
中被引用,http://blog.csdn.net/ljh0302/article/details/50011587

将配置管理器,平台的设置由Win32改成x64,问题解决。这应该是与我配置VS的时候出现了遗漏造成的。



(7)无脑配置VS+opencv
http://www.bubuko.com/infodetail-793518.html

看了上面这篇文章之后,感觉这样配置更方便一些,于是我也来试一试。

《1》在系统变量里面新建变量,名为 OPENCV ,值为自己解压opencv路径下的build路径,如 D:\Program
Files\opencv\build。

《2》这一步是方便以后如果opencv路径改变了,只需要修改此变量就可以了,而不必做大范围修改。

在系统变量里面编辑 Path 变量,在末尾添加 ;%OPENCV%\x86\vc12\bin 。

《3》新建文件opencv300.props输入内容:见附录一    





 
这份属性表为opencv3.0的VS2013工程属性表,兼容64位和32位平台,兼容Debug和Release配置。详细解释看后文,后面在VS工程中配置Opencv只需要导入这份属性表就可以了。



这里需要特别注意一下,从网页复制的代码可能会出现符号错误。以下这个“和‘符号是在键盘上同一个按键上的,如果无法添加话,手动修改一下代码里的这两个符号(Ctrl+F进行“替换”),在进行编译。




(8)试一试啊,按照第(5)步+第(7)步再来一遍,很不幸,报错了,百度了一下,说是DirectX 
组件损坏,于是就修复呗,这个修复工具很多,修复完成并没有什么卵用好吗,突然想到了,跳过了第(6)步啊,于是按照第6步再来一遍,OK,同样显示出来企鹅兄弟的照片。



[code]添加头文件目录:
配置属性-->C/C++-->常规-->附加包含目录 加上头文件存放的目录。
添加lib文件:
配置属性-->链接器-->输入-->附加依赖项加入库名(×××.lib);或者是在cpp源文件中用#pragma comment(lib,"×××.lib")来代替。

[/code]
[code]此时编译会提示:fatal error LNK1104: 无法打开文件“×××.lib”,原因是编译器找不到lib文件。
给项目添加库文件路径
在VS中右击项目点属性:
配置属性-->链接器-->常规-->附加目录 。在里面填上库文件所在的路径即可。

[/code]
[code]直接添加库文件到工程中.
就像你添加.h和.cpp文件一样,把lib文件添加到工程文件列表中去。右键项目点添加选择现有项目,选择lib文件点

[/code]
附录一:
http://schemas.microsoft.com/developer/msbuild/2003">
 

 

 

   
$(OPENCV)\include;$(IncludePath)

   
$(OPENCV)\x86\vc12\lib;$(OPENCV)\x86\vc12\staticlib;$(LibraryPath)

   
$(OPENCV)\x64\vc12\lib;$(OPENCV)\x64\vc12\staticlib;$(LibraryPath)

 

 

   

     
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)

     

   

   

     
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)

     

   

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: