Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58349
  • 博文数量: 11
  • 博客积分: 410
  • 博客等级: 一等列兵
  • 技术积分: 114
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-23 01:10
文章分类

全部博文(11)

文章存档

2013年(1)

2012年(1)

2011年(3)

2010年(6)

我的朋友

分类: WINDOWS

2011-02-25 14:06:45

   
VC 2008 Express下安装OpenCV2.0/2.1

本文档适用版本为OpenCV 2.0/2.1和Visual C++ 2008 Express,如使用其他版本,仅供参考。

OpenCV2.0官方安装文档,请参考:

if (window.showTocToggle) { var tocShowText = "显示"; var tocHideText = "隐藏"; showTocToggle(); }

安装所需要的软件
安装VC++ 2008 Express

Visual C++ Express是微软推出的一款免费集成开发环境,如果你没有足够资金购买Visual C++,你可以使用Visual C++ Express。本安装说明撰写时,最新的版本是Visual C++ 2008 Express.

Visual C++ 2008 Express可以从微软网站下载安装( )。

安装OpenCV

从 下载OpenCV 2.0,并安装,本文档假定安装目录为:D:\Program Files\OpenCV2.0

安装CMake

从 下载 Windows (Win32 Installer) 安装。

编译OpenCV
用CMake导出VC++项目文件
  • 运行cmake-gui,设置路径为OpenCV安装路径(本文档假定安装位置为:D:\Program Files\OpenCV2.0),并创建子目录D:\Program Files\OpenCV2.0\vc2008,用于存放编译结果。
  • 然后点 configure,在弹出的对话框内选择 Visual Studio 9 2008。
  • 如果是VC++2008的Express版本,则不支持OpenMP,所以需要取消ENABLE_OPENMP选项,取消后再次选择“Congfigure”,完成后选择“Generate”。VC++ 2008(不是Express版本)支持OpenMP,如果你使用VC++2008,强烈建议不要取消这个选项。
点击看大图
Enlarge
点击看大图
Enlarge
点击看大图
Enlarge
编译 OpenCV Debug和Release版本库

完成上一步骤后,将在D:\Program Files\OpenCV2.0\vc2008目录下生成OpenCV.sln的VC Solution File,请用VC++ 2008 Express打开OpenCV.sln,然后执行如下操作:

  • 在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
  • 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。

注:这里每次“Rebuild”出现错误时,可以多次“Rebuild”,至没有错误产生。(我的是“Rebuild”两次后没有问题了)

此时,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)将出现在D:\Program Files\OpenCV2.0\vc2008\bin目录中;OpenCV的*d.lib文件(for debug)和*.lib文件(for release)将出现在D:\Program Files\OpenCV2.0\vc2008\lib目录;头文件*.h出现在D:\Program Files\OpenCV2.0\vc2008\include\opencv中。

可以被VC++ 2008 Express调用的OpenCV动态库生成完毕。

点击看大图
Enlarge
点击看大图
Enlarge
点击看大图
Enlarge
点击看大图
Enlarge
点击看大图
Enlarge
配置Windows环境变量Path

将D:\Program Files\OpenCV2.0\vc2008\bin加入Windows系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。

点击看大图
Enlarge
点击看大图
Enlarge
为VC++ 2008 Express配置OpenCV环境

打开VC++ 2008 Express,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories

  • Show directories for选择include files,加入目录 D:\Program Files\OpenCV2.0\vc2008\include\opencv
  • Show directories for选择library files,加入目录 D:\Program Files\OpenCV2.0\vc2008\lib

关闭VC++ 2008 Express。

点击看大图
Enlarge
点击看大图
Enlarge
使用OpenCV 2.0编程
  • 打开VC++ 2008 Express,创建一个Win32控制台程序opencvhello;
  • 选择Solution Explorer里的opencvhello项目,点击鼠标右键,选择Properties,在[链接器 LINKER]的[输入INPUT]中;
  • 为项目的Debug配置增加依赖的库:cxcore200d.lib cv200d.lib highgui200d.lib(注意,文件名cv200d.lib 可能是cv***d.lib等形式,具体应查看D:\Program Files\OpenCV2.0\vc2008\lib )
  • 为项目的Release配置增加依赖的库:cxcore200.lib cv200.lib highgui200.lib
  • 配置属性-字符集修改为使用“多字节字符集” (由于2008默认是以Unicode字符集编译的)
  • 编译运行下面的例程(需要将lena.jpg文件放在项目目录下)。
  #include "stdafx.h" #include "highgui.h"   //所有的以新风格命名的函数都在 cv 命名空间中 //如果希望不要每次都输入 cv:: ,则可使用下面语句 //using namespace cv;   int _tmain(int argc, _TCHAR* argv[]) {   const char* imagename = "lena.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; }
点击看大图
Enlarge
点击看大图 
点击看大图
Enlarge
点击看大图
Enlarge
点击看大图
Enlarge
点击看大图
Enlarge

注:使用OpenCV 2.1 的,请将上图中的 *200.lib 和 *200d.lib 分别改为 *210.lib 和 *210d.lib


Win7 下使用opencv2.1 VC++2008时该程序中加载图像时要写完整路径,不然加载不了。例如:

const char* imagename = "lena.jpg";

需要修改为

const char* imagename = "D:\\lena.jpg";特别注意 多层文件夹下要加"\\"; 比如我新建的一个项目,把图片放在该工程所在文件夹下,就要加两个“\”; 路径如下:C:\\Program Files\\Visual Studio 2008\\Projects\\opencv2.1\\图片名字.jpg; 不然每个“\”后面的第一个字母就会被识别为“不可识别的字符转义序列”, 虽然能编译成功,但是无法显示出图片 另外,每新建一个项目,貌似都需要添加所需的依赖的那六个库,以及修改项目的配置属性。 vs2010配置opencv不大好弄,所以大家将就用着2008吧。
 
阅读(1270) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:提取图片中的标准杆

给主人留下些什么吧!~~