摘要:在VS2008环境中应用Opencv,网上找到了很多配置方法,但大多都是老版本的,很多新手面对最新版本的Opencv无从下手,就给新手童鞋写了这么一篇超级详细的配置攻略,贴上来共享。要强调一点的就是,这种配置方法里使用的Opencv库是直接安装Opencv时候自带的dll库,在你的VS里面是无法调试Opencv的。
1、下载软件
下载OpenCV-2.4.0,双击解压到%opencv%(凡是出现%opencv%的地方均替换为你自己opencv的路径全名,如E:\opencv)。
下载VS2008,安装。
2、配置OpenCV环境变量
计算机->(右键)属性->高级系统设置->高级(标签)->环境变量->(双击)path(用户,系统里面的path任选其一)->在变量值里面添加” %opencv%\build\x86\vc9\bin”和”%opencv%\build\common\tbb\ia32\vc9”(里面的%opencv%记得换成自己的opencv路径。例如我的:E:\opencv\build\x86\vc9\bin;E:\opencv\build\common\tbb\ia32\vc9)。
3、配置工程的opencv依赖
1)工具->选项->项目和解决方案->VC++目录:需要配置“包含文件”和“库文件”两项。
2)配置“包含文件”项:添加行”%opencv%\build\include“即可。
但在运行别人的opencv项目时,可能别人直接引用了上述目录的子目录路径,如果出现include错误,则再添加”%opencv%\build\include\opencv”和(或)”%opencv%\build\include\opencv2”,即可解决问题。
3)配置“库文件”项:添加行”%opencv%\build\x86\vc9\lib”即可。
4)配置连接器:项目(菜单项)->属性->配置属性->链接器->输入->附加依赖项
(每次新建工程都要重新配置)
针对debug配置添加以下库:
opencv_calib3d240d.lib
opencv_contrib240d.lib
opencv_core240d.lib
opencv_features2d240d.lib
opencv_flann240d.lib
opencv_gpu240d.lib
opencv_highgui240d.lib
opencv_imgproc240d.lib
opencv_legacy240d.lib
opencv_ml240d.lib
opencv_objdetect240d.lib
opencv_ts240d.lib
opencv_video240d.lib
如果是release配置(以后再说,只需要添加上面的debug配置就行了现在),则添加:
opencv_calib3d240.lib
opencv_contrib240.lib
opencv_core240.lib
opencv_features2d240.lib
opencv_flann240.lib
opencv_gpu240.lib
opencv_highgui240.lib
opencv_imgproc240.lib
opencv_legacy240.lib
opencv_ml240.lib
opencv_objdetect240.lib
opencv_ts240.lib
opencv_video240.lib
4、用VS2008新建控制台工程测试:
1)文件->新建->项目->Visual C++->Win32 控制台应用程序(输入名称test),并新建test.cpp,配置好项目属性,然后键入以下代码:
- <span style="color:#339900">#include "StdAfx.h"</span>
- <span style="color:#339900">#include < #string#>//#用来屏蔽某代码插件的bug,下同</span>
- <span style="color:#339900">#include < #opencv2\opencv.hpp#></span>
- <span style="color:#0000ff">using</span> <span style="color:#0000ff">namespace</span> cv<span style="color:#008080">;</span>
- <span style="color:#0000ff">using</span> <span style="color:#0000ff">namespace</span> std<span style="color:#008080">;</span>
- <span style="color:#0000ff">int</span> main<span style="color:#008000">(</span><span style="color:#008000">)</span>
- <span style="color:#008000">{</span>
- string imageName <span style="color:#000080">=</span> <span style="color:#ff0000">"lena.jpg"</span><span style="color:#008080">;</span>
- <span style="color:#666666">//读入图像</span>
- Mat img <span style="color:#000080">=</span> imread<span style="color:#008000">(</span>imageName<span style="color:#008000">)</span><span style="color:#008080">;</span>
- <span style="color:#666666">//如果读入图像失败</span>
- <span style="color:#0000ff">if</span> <span style="color:#008000">(</span>img.<span style="color:#007788">empty</span><span style="color:#008000">(</span><span style="color:#008000">)</span><span style="color:#008000">)</span>
- <span style="color:#008000">{</span>
- <span style="color:#0000ff">return</span> <span style="color:#000040">-</span><span style="color:#0000dd">1</span><span style="color:#008080">;</span>
- <span style="color:#008000">}</span>
- <span style="color:#666666">//创建窗口</span>
- namedWindow<span style="color:#008000">(</span><span style="color:#ff0000">"lena"</span>, <span style="color:#0000dd">1</span><span style="color:#008000">)</span><span style="color:#008080">;</span>
- <span style="color:#666666">//显示图像</span>
- imshow<span style="color:#008000">(</span><span style="color:#ff0000">"lena"</span>, img<span style="color:#008000">)</span><span style="color:#008080">;</span>
- <span style="color:#666666">//等待按键,按键盘任意键返回</span>
- waitKey<span style="color:#008000">(</span><span style="color:#008000">)</span><span style="color:#008080">;</span>
- <span style="color:#0000ff">return</span> <span style="color:#0000dd">0</span><span style="color:#008080">;</span>
- <span style="color:#008000">}</span>
- <span style="color:#008000">程序默认路径下如果有lena.jpg,则显示图像lena.jpg,否则没有显示。</span>
The End。