ml —— 机器学习函数库
opencv是跨平台的,支持包括windows、unix以及android等平台。下图是
英文wiki
上一张关于opencv概述的图。关于opencv的一系列功能以及特性,本文不再赘述,如果要了解,请移步至
opencv的中文站点介绍
。
本文将会讲解在wndows上如何使用VS2010安装opencv,并以一个简单的程序作为结束。opencv在近期推出了2.3版本,不过本文仍然以2.2版本为例。其他安装请参考
中文安装页面
。
安装方式有两种选择:
直接下载
OpenCV-2.2.0-win32-vs2010.exe文件。可以在
这页
找到下载。这种方式很傻瓜,直接双击安装即可。安装过程中勾选“Add OpenCV to system PATH for all users”选项。(当然也可以安装完毕添加,在环境变量path中添加“<安装路径>/opencv/bin/”)
另外一种是源码安装(压缩包地址也
可以在
这里
找到
)。如果你想用IPP、CUDA或者Qt自定义安装opencv,你就需要从源码安装。
下面着重说一下源码安装的步骤。首先是编译。
第一步是用CMake导出VC++项目文件。
首先需要下载CMake(
下载地址
)。
安装完成后,打开cmake-gui,设置路径为OpenCV安装路径(本文档假定安装位置为:C:\OpenCV2.2,即下载的压缩包解压地址),并创建子目录C:\OpenCV2.2\vs2010,用于存放编译结果。
然后点 configure,在弹出的对话框内选择 Visual Studio 10(这里根据你的visual studio的版本确定,vs2010对应的是10,而2008对应的9)。完成后选择“Generate”。
导出完成后,转到项目文件(本例在C:\OpenCV2.2\vs2010下),打开OpenCV.sln文件。分别在debug和release下编译。
完成后就是配置环境变量了。将“C:\OpenCV2.2\vs2010\bin”添加至windows系统环境变量path中。
以上这部分可以参考
中文安装文档
。
最后,我们需要配置visual studio的开发环境。
对于vs2008或者以下版本。选择 Tools -> Options -> Projects and Solutions -> VC++ Directories(中文版为:工具 --> 选项 --> 项目和解决方案 --> vc++目录)。
Show directories for选择executable files,加入目录 C:\OpenCV2.2\vs2010\bin
Show directories for选择include files,加入目录 C:\OpenCV2.2\vs2010\include\opencv,和C:\OpenCV2.2\vs2010\include
Show directories for选择library files,加入目录C:\OpenCV2.2\vs2010\lib
对于vs2010,这个编辑功能已经被否决。这时候随便打开一个项目。接着打开视图-->其他窗口-->属性管理器(property manager)。接着项目-->Debug | Win32 --> Microsoft.Cpp.Win32.user,右击属性。在“vc++目录”做以上修改。
最后我们以一个打开图片的程序为结尾。
打开VS2010,创建一个Win32控制台程序opencvhello。
选择Solution Explorer(解决方案)里的opencvhello项目,点击鼠标右键,选择Properties,
在[链接器 LINKER]的[输入INPUT]中
:
为项目的Debug配置增加 [依赖的库 Additional Dependencies]
:opencv_core220d.dll、opencv_highgui220d.lib和opencv_imgproc220d.lib
(注意,文件名opencv_core220d.dll 可能是opencv_***d.lib等形式,具体应查看C:\OpenCV2.2\vc2010\lib。如果使用的是OpenCV2.1,应输入:opencv_core210d.lib、opencv_highgui210d.lib和opencv_imgproc210d.lib )
为项目的Release配置增加[依赖的库 Additional Dependencies]
:opencv_core220.dll、opencv_highgui220.lib和opencv_imgproc220.lib (注意:如果使用的是OpenCV2.1,应输入:opencv_core210.lib、opencv_highgui210.lib和opencv_imgproc210.lib)
在 [配置属性 Configuration Properties]- [General] -[字符集 Character Set] 修改为使用“多字节字符集” (由于2008默认是以Unicode字符集编译的)
编译运行下面的例程(就以我以前文章经常用的例子中的图片,主要要将lam.jpg文件放在项目目录下)。
/***********************************************************************
* OpenCV 2.0 测试例程
***********************************************************************/
#include "stdafx.h"
#include "highgui.h"
//所有的以新风格命名的函数都在 cv 命名空间中
//如果希望不要每次都输入 cv:: ,则可使用下面语句
//using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
const char* imagename = "lam.jpg";
cv::Mat img = cv::imread(imagename); // Matlab风格的 cvLoadImage 函数的另一种调用
if(img.empty())
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
if( !img.data ) // 检查是否正确载入图像
return -1;
cv::namedWindow("image", CV_WINDOW_AUTOSIZE); //创建窗口
cv::imshow("image", img); //显示图像
cv::waitKey(); // 等待键盘事件退出
return 0;
大家可以尝试运行。
残阳似血(@秦续业),程序猿一枚,把梦想揣进口袋的挨踢工作者。现加入阿里云,研究僧毕业于上海交通大学软件学院ADC实验室。熟悉分布式数据分析(DataFrame并行化框架)、基于图模型的分布式数据库和并行计算、Dpark/Spark以及Python web开发(Django、tornado)等。