本博客安装是以OpenCV 2.4.9为样例进行安装。
操作系统:Windows 7 64bit
下载地址:http://opencv.org/downloads.html
在网页中找到VERSION 2.4.9如下图,然后下载OpenCV for Windows版本
下载完成之后得到opencv 2.4.9.exe。接下来就是安装了,其实我们下载的.exe安装文件就是一个自解压程序。双击这个.exe会提示我们解压到什么目录下。我是放到E:\OpenCVLearning\下。需要注意一点,就是OpenCV项目文件在进行打包的时候,根目录就是opencv,就是在OpenCVLearning下自动生成一个opencv目录。如下图所示:
解压结束,我们会发现在opencv目录下多处build和sources两个目录,build目录下是支持OpenCV使用的相关文件,sources目录下是OpenCV的源代码和相关文件
如下图所示:
配置环境变量
【计算机】右键选中【属性】,选中左边的【高级系统设置】,进入如下界面:
然后进入到【环境变量】
在系统变量 PATH中添加
E:\OpenCVLearning\opencv\build\x64\vc10\bin;和E:\OpenCVLearning\opencv\build\x86\vc10\bin;用;进行隔开。
如下图所示:
注意:32bit的系统只需要添加E:\OpenCVLearning\opencv\build\x86\vc10\bin;
我的系统是64bit,我在前面把连个插入,到手才可以在编译器Win32和X64中来回切换。这里的路径是我们之前解压到目录。
工程包含(include)目录的配置
我们打开vs2010, 新建一个项目,建立步骤如下截屏:
进入到【Win32 应用程序向导】界面后,单击下一步。如下图:
在工程opencvtest1中新建一个cpp源文件,如下图:
在属性管理器中,进行一次配置。实际上就行进行一次通用的配置过程,以后新建工程就不用再进行额外的配置了。属性管理器的打开,如下图:
在属性管理器 工作区中,对【Debug|Win32】目录下的【Microsoft.Cpp.Win32.userDirectories】进行右键选中属性。如下图所示:
我添加的三个目录如下:
E:\OpenCVLearning\opencv\build\include
E:\OpenCVLearning\opencv\build\include\opencv
E:\OpenCVLearning\opencv\build\include\opencv2
工程库(lib)目录的配置
这一步配置操作和上一个工程包含(include)目录的配置
很类似,在属性管理器 工作区中,对【Debug|Win32】目录下的【Microsoft.Cpp.Win32.userDirectories】进行右键选中属性。进入到属性界面后,在【库目录】中添加:E:\OpenCVLearning\opencv\build\x86\vc10\lib
如下图所示:
注意:这些添加的目录最好不要自己输入,往往会输入错误,导致编译时候出现LINK: fatal error LNK1104: 无法打开文件”opencv_calib3d249.lib”这样的错误。
不管是32bit还是64bit的操作系统,只需要考虑用Win32编译器还是X64的编译器。其实配置选择什么跟64bit还是32bit系统没有什么直接的关系,而是在于在编译程序时候使用哪个编译器而已。编译器选择Win32,就用X86;编译器选择x64,就用x64。一般来说,都是用的Win32的x86编译器,所以,不管你是32bit还是64bit操作系统,配置文件最好都还是选择x86版本。
链接库的配置
还是在【属性管理器】中对【Debug|Win32】目录下的【Microsoft.Cpp.Win32.userDirectories】进行右键选中属性。进入到属性界面后,在【附加的依赖项】中添加249的lib版本,如下图:
249版本如下:
19个带d的debug版lib写在前面,19个不带d的release版写在后面,就是在优先支持debug的模式下编译运行
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
在Widows文件夹下加入OpenCV动态链接库
如果你的环境变量配置的准确,切配置之后经过重启,就没有必要进行这步的操作。直接进行测试步骤,当然,总有些人不要重启就可以查看配置的是否成功。那么就需要进行这步的操作。
如果不重启的话,会提示我们计算机丢失opencv_core249d.dll这类错误,解决的办法就是把这些相关的dll都复制到Windows操作系统目录下。默认操作系统安装在C盘。如果是32bit把这些dll放置在C:\Windows\System32,64bit把这些dll放置在C:\Windows\SysWOW64
这些dll存放在E:\OpenCVLearning\opencv\build\x86\vc10\bin 中
如下图所示:
将这些dll拷贝到C:\Windows\SysWOW64
测试
我们新建一个Win32的空项目,在之前已经说过步骤了,然后在源文件中新建一个cpp文件。如下图所示:
1.jpg保存到与test.cpp一个目录下。
如下图所示
代码如下:
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读入一张照片
Mat img = imread("1.jpg");
// 在窗口中显示读入的照片
imshow("loading photo", img);
// 等待6s后窗口自动关闭
waitKey(6000);
}