openCV 在vc2008中的配置方法
来源:互联网 发布:5g网络4g手机能用吗 编辑:程序博客网 时间:2024/05/24 02:08
openCV 在vc2008中的配置方法
(2013-04-11 16:14:05)杂谈
VC 2008 Express下安装OpenCV2.0/2.1
本文档适用版本为OpenCV 2.0/2.1和Visual C++ 2008 Express,如使用其他版本,仅供参考。
OpenCV2.0官方安装文档,请参考:http://opencv.willowgarage.com/wiki/InstallGuide
目录
- 1
安装所需要的软件 - 1.1
安装VC++ 2008 Express - 1.2
安装OpenCV - 1.3
安装CMake
- 1.1
- 2
编译OpenCV - 2.1
用CMake导出VC++项目文件 - 2.2
编译 OpenCV Debug和Release版本库
- 2.1
- 3
配置Windows环境变量Path - 4
为VC++ 2008 Express配置OpenCV环境 - 5
使用OpenCV 2.0编程 - 6
作者
安装所需要的软件
安装VC++ 2008 Express
Visual C++ Express是微软推出的一款免费集成开发环境,如果你没有足够资金购买Visual C++,你可以使用Visual C++ Express。本安装说明撰写时,最新的版本是Visual C++ 2008 Express.
Visual C++ 2008 Express可以从微软网站下载安装(http://www.microsoft.com/express/product/default.aspx
安装OpenCV
从
安装CMake
从
编译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,强烈建议不要取消这个选项。
注意:OpenCV2.1中没有ENABLE_OPENMP选项,在安装VC++2008时可以不管这个选项。
编译 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"。
此时,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动态库生成完毕。
配置Windows环境变量Path
将D:\Program Files\OpenCV2.0\vc2008\bin加入Windows系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。
为VC++ 2008 Express配置OpenCV环境
打开VC++ 2008 Express,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories
- Show directories for选择executable files,加入目录 D:\Program Files\OpenCV2.0\vc2008\bin
- 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。
使用OpenCV 2.0编程
- 打开VC++ 2008 Express,创建一个Win32控制台程序opencvhello;
- 选择Solution Explorer里的opencvhello项目,点击鼠标右键,选择Properties,在[链接器 LINKER]的[输入INPUT]中:
- 为项目的Debug配置增加 [依赖的库 Additional Dependencies]:cxcore200d.lib cv200d.lib highgui200d.lib(注意,文件名cv200d.lib 可能是cv***d.lib等形式,具体应查看D:\Program Files\OpenCV2.0\vc2008\lib。如果使用的是OpenCV2.1,应输入:cxcore210d.lib cv210d.lib highgui210d.lib )
- 为项目的Release配置增加[依赖的库 Additional Dependencies]:cxcore200.lib cv200.lib highgui200.lib (注意:如果使用的是OpenCV2.1,应输入:cxcore210.lib cv210.lib highgui210.lib)
- 在 [配置属性 Configuration Properties]- [General] -[字符集 Character Set] 修改为使用“多字节字符集” (由于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; }
- openCV 在vc2008中的配置方法
- (转载)directshow的下载、VC2008中的配置、入门教程以及如何在opencv中使用
- directshow的下载、VC2008中的配置、入门教程以及如何在opencv中使用
- directshow的下载、VC2008中的配置、入门教程以及如何在opencv中使用
- directshow的下载、VC2008中的配置、入门教程以及如何在opencv中使用
- VC2008 + Qt 配置OpenCV
- VC2008下配置OpenCV
- OpenCV在Qt中的配置方法
- CUDA在VC2008中的环境搭建与配置要点
- gSOAP在VC2008中的使用
- gSOAP在VC2008中的使用
- WIN7系统下在VC2008中配置OpenCV并实现一幅图的显示
- opencv在VS2010中的配置
- opencv在2010中的配置
- opencv在vs2010中的配置
- Opencv在xcode中的配置
- opencv在qt中的配置
- opencv在vc10中的配置
- win8.1下解决VC6.0不兼容问题
- ExtJs4.x动态添加组件无法正常显示问题
- RabbitMQ基础概念详细介绍
- 程序员赚钱的头脑
- 二叉树学习-已知中序、后序,求先序
- openCV 在vc2008中的配置方法
- cin.get和cin.getline在读取一整行时的区别
- 关于性能测试模型的探讨(转)
- hdu 1695 GCD(组合数学:容斥原理)
- BCBTGifImage显示GIF动画
- poj2240 Arbitrage(floyd)
- 灰度公式
- 主线程中的handle问题
- 十大编程算法助程序员走上大神之路