OpenCV3.0.0的下载、安装与配置
0赞安装VisualStudio2010,这里不做介绍。
注意:官方对OpenCV3的配置过程已经简化。当配置链接库时,对于release版本,只需添加opencv_ts300.lib和opencv_world300.lib;对于debug版本,只需添加opencv_ts300d.lib和opencv_world300d.lib。其中,300是OpenCV对应的版本号。
一、OpenCV的下载与安装
在http://opencv.org 上下载OpenCV,以OpenCV3.0.0为例。双击opencv-3.0.0-beta.exe进行OpenCV的安装(其实是自解压的过程)。
选择OpenCV解压到的路径(这里为D:\SoftwareInstall),点击Extract。
OpenCV安装完成后,在D:\SoftwareInstall目录下产生3个多GB大小的opencv文件夹。
opencv目录下有两个文件夹build和source。其中,build是支持OpenCV使用的相关文件,source为OpenCV的源代码及相关文件。
二、环境变量的配置
选择电脑桌面“计算机”—>右键—>属性—>高级系统设置—>环境变量,在弹出的对话框中,找到“系统变量”中“Path”,点击“编辑”,在“变量值”中输入“;”(注意切换到英文输入法)和“D:\SoftwareInstall\opencv\build\x86\vc10\bin” 及 “D:\SoftwareInstall \opencv \build\x64\vc10\bin”(这里跟编译器系统有关,根据使用的编译器系统选择,如32位编译器或64位编译器),一路点击“确定”,完成环境变量的设置。
注意:x86表示编译器为32位;x64表示编译器为64位;vc10表示VisualStudio2010(vc8表示VisualStudio2005、vc9表示VisualStudio2008、vc11表示VisualStudio2012、vc12表示VisualStudio2013、后续版本以此类推)。
三、工程包含目录的配置
打开VisualStudio2010,选择“文件”—>新建—>项目,新建一个项目。
在弹出的“新建项目”对话框中,选择“Win32控制台应用程序”,并输入项目的名称和位置,点击“确定”。
点击“下一步”,选择“空项目”,点击“完成”。
在解决方案资源管理器中的源文件右键单击—>添加—>新建项,新建一个cpp源文件。
选择“C++文件(.cpp)”并输入源文件名称(这里为FirstProject),点击“添加”。
选择菜单“视图”—>属性管理器。在属性管理器中进行一次配置,就相当于进行了通用的配置过程,以后新建的工程就不用再额外进行配置。
在属性管理器中展开Debug|Win32,双击“Microsoft.Cpp.Win32.user”(或右键属性)。
在“属性页”中,选择“通用属性”—>“VC++目录”—>“包含目录”,添加以下三个包含路径(可根据OpenCV的安装路径进行修改):
D:\SoftwareInstall\opencv\build\include D:\SoftwareInstall\opencv\build\include\opencv D:\SoftwareInstall\opencv\build\include\opencv2
四、工程库目录的配置
这里跟第三点的配置类似。在“属性页”中,选择“通用属性”—>“VC++目录”—>“库目录”,添加以下库路径(可根据OpenCV的安装路径进行修改):
D:\SoftwareInstall\opencv\build\x86\vc10\lib
五、链接库的配置
在“属性页”中,选择“通用属性”—>“链接器”—>“输入”—>“附加依赖项”,添加以下链接库(带d的链接库放前面、不带d的链接库放后面,表示优先支持debug的编译运行、然后才是release的编译运行):
opencv_ts300d.lib opencv_world300d.lib opencv_ts300.lib opencv_world300.lib
此外,需注意的是OpenCV3.0.0以下版本的链接库配置与这里的差别很大。例如,OpenCV2.4.9的链接库配置:
opencv_ml249d.lib opencv_calib3d249d.lib opencv_contrib249d.lib opencv_core249d.lib opencv_features2d249d.lib opencv_flann249d.lib opencv_gpu249d.lib opencv_highgui249d.lib opencv_imgproc249d.lib opencv_legacy249d.lib opencv_objdetect249d.lib opencv_ts249d.lib opencv_video249d.lib opencv_nonfree249d.lib opencv_ocl249d.lib opencv_photo249d.lib opencv_stitching249d.lib opencv_superres249d.lib opencv_videostab249d.lib opencv_objdetect249.lib opencv_ts249.lib opencv_video249.lib opencv_nonfree249.lib opencv_ocl249.lib opencv_photo249.lib opencv_stitching249.lib opencv_superres249.lib opencv_videostab249.lib opencv_calib3d249.lib opencv_contrib249.lib opencv_core249.lib opencv_features2d249.lib opencv_flann249.lib opencv_gpu249.lib opencv_highgui249.lib opencv_imgproc249.lib opencv_legacy249.lib opencv_ml249.lib
注意:以上内容为OpenCV安装路径…\opencv\build\x86\vc10\lib下所有lib库文件的名称。
六、在windows中加入OpenCV的动态链接库
将OpenCV安装路径D:\SoftwareInstall\opencv\build\x86\vc10\bin的所有dll复制到C:\Windows\SysWOW64目录下(如果电脑系统为32位系统,则将dll复制到C:\Windows
\System32中),这样电脑就不用重启了。
七、测试
此次测试的内容是载入并显示一张图片。新建一个空的Win32控制台应用程序工程,并新建cpp源文件(工程名和源文件都命名为ImageDisplay)。ImageDisplay.cpp的内容(图片picture.jpg与ImageDisplay.cpp在同一个目录下):
#include <opencv2\opencv.hpp> using namespace cv; int main() { Mat img = imread("picture.jpg"); // 载入一张图片 imshow("显示图片",img); // 在窗口中显示载入的图片 waitKey(); // 等待按键按下退出 return 0; }
编译运行,结果出现了以下错误:
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
网上查了一下,有几种方法可以解决该问题。这里,通过修改项目属性的方法来解决。选择菜单“视图”—>“属性管理器”,在“属性管理器”中展开“debug|win32”,双击Microsoft.Cpp.Win32.user。在“属性页”中,选择“通用属性”—>“清单工具”,在“嵌入清单”这一项选择“否”,点击“应用”、“确定”,这样就解决问题了。
再次编译运行,便打开控制台和显示一张图片。