设为首页 收藏本站
查看: 1639|回复: 0

[经验分享] VC 2008 Express下安装OpenCV2.3.1

[复制链接]

尚未签到

发表于 2016-5-23 03:04:25 | 显示全部楼层 |阅读模式
  
  注意:


  • 下列文档以VC2008 Express为例,VC2010下的配置应与本文档类似。
  • VC 6.0不被OpenCV 2.3.1支持。
  • VC Express是微软提供的免费版,可从此处下载:  http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express
  • 建议先不要自己编译,如果使用预编译好的库有问题,再尝试自己编译。
  
  

安装所需要的软件

 
  

下载OpenCV


  • 从本站下载栏目  http://www.opencv.org.cn/index.php/Download 下载 OpenCV for Windows(也即 OpenCV-2.3.1-win-superpack.exe 文件)。
  • 将 OpenCV-2.3.1-win-superpack.exe 解压并放到某个目录下,例如 D:\Program Files\OpenCV2.3.1 (无需运行setup.exe,解压则可)。解压后的目录结构如下图。


DSC0000.png










 
  

安装CMake(不打算自己编译无需安装)
  从  http://www.cmake.org/cmake/resources/software.html 下载 Windows (Win32 Installer) 安装。
  

 
  

编译OpenCV(非必需步骤)

 
  

用CMake导出VC++项目文件


  • 运行cmake-gui,设置where is the source code路径为OpenCV安装路径(本文档假定安装位置为:D:\Program Files\OpenCV2.3.1\opencv),并创建子目录D:\Program Files\OpenCV2.3.1\opencv\build\my,并将cmake的"where to build the binaries"设置为这个目录。
  • 然后点 configure,在弹出的对话框内选择 Visual Studio 9 2008。
  • 你可根据你的系统修改选项,修改后再次选择“Congfigure”,完成后选择“Generate”。

(注: 此处Open CV文件放的目录不能包含汉字,否则“Congfigure”和“Generate”无法成功;同时需要关闭已经打开的VS,否则CMake与VS的宏无法配置。 by:Jackyzzy 赵振阳)


DSC0001.png










DSC0002.png










 




 

 

 

 
  

 

编译 OpenCV Debug和Release版本库
  完成上一步骤后,将在D:\Program Files\OpenCV2.3.1\opencv\build\my目录下生成OpenCV.sln的VC Solution File,请用VC++ 2008 Express打开OpenCV.sln,然后执行如下操作:


  • 在Debug下,选择Solution Explorer(解决方案资源管理器)里的 Solution OpenCV(解决方案“OpenCV”),点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
  • 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
  全部运行完毕后,针对你的系统的OpenCV库就生成了。

 
  

配置VC

 
  

配置include路径
  也即告诉VC去什么地方寻找OpenCV的头文件,打开VC,选择菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”->“包含文件”,包含  D:\Program Files\OpenCV2.3.1\opencv\build\include;D:\Program Files\OpenCV2.3.1\opencv\build\include\opencv;D:\Program Files\OpenCV2.3.1\opencv\build\include\opencv2 如果是自己编译的则输入D:\Program Files\OpenCV2.3.1\opencv\build\my\install\include


DSC0003.png










 
  

配置lib路径
  也即告诉VC去什么地方寻找OpenCV的库文件。
  在刚才下载的文件OpenCV-2.3.1-win-superpack.exe 里,已经为VC2008和VC2010预先编译好了动态库和静态库。因此我们不需要如早先版本那样,自己用cmake编译OpenCV。


  • 自己编译的库,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib
  

(注:由于自己编译成功,lib文件在Debug和Release两个文件中,加载库时需到Debug和Release中,
我配置的库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib\Debug,否则调试时无法进入Open CV代码中。 by:Jackyzzy 赵振阳)

  


  • 32位系统 & VC2008,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\lib
  • 32位系统 & VC2010,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\lib
  • 64位系统 & VC2008,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc9\lib
  • 64位系统 & VC2010,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\lib
  请根据自己的情况四选一,将库目录输入菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”->“库文件” 。如下图所示:


DSC0004.png










DSC0005.png










 




 
  

设置环境变量
  刚才设置的是动态库,因此还需要将OpenCV的dll文件所在的目录加入Path环境变量。dll文件目录如下,请根据自己情况五选一:


  • 自己编译的库,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\bin
  • 32位系统 & VC2008,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\bin
  

(注:此处环境变量应与上边库目录一致,这样能够调试时能够进入代码,我自己的目录是:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\bin\Debug。 by:Jackyzzy 赵振阳)

  


  • 32位系统 & VC2010,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\bin
  • 64位系统 & VC2008,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc9\bin
  • 64位系统 & VC2010,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\bin
  由于有些函数需要TBB,所以需要将tbb所在的目录也加入到环境变量Path中。TBB相关的DLL路径为:


  • 32位系统 & VC2008:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\ia32\vc9
  • 32位系统 & VC2010:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\ia32\vc10
  • 64位系统 & VC2008:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\intel64\vc9
  • 64位系统 & VC2010:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\intel64\vc10
  如下图所示将OpenCV和TBB的dll文件所在的目录系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。


DSC0006.png










DSC0007.png










 
  

使用OpenCV 2.3.1编程


  • 打开VC++ 2008 Express,创建一个Win32控制台程序helloopencv;


DSC0008.png











  • 选择Solution Explorer里的opencvhello项目,点击鼠标右键,选择Properties。


DSC0009.png











  • ,在[链接器 LINKER]的[输入INPUT]中,为项目的Debug配置增加 [附加依赖项 Additional Dependencies]:opencv_calib3d231d.lib; opencv_contrib231d.lib; opencv_core231d.lib; opencv_features2d231d.lib; opencv_flann231d.lib; opencv_gpu231d.lib; opencv_highgui231d.lib; opencv_imgproc231d.lib; opencv_legacy231d.lib; opencv_ml231d.lib; opencv_objdetect231d.lib; opencv_ts231d.lib; opencv_video231d.lib (可根据实际需要删减)注意,请打开了新编辑窗口(即点击了“...”按钮)“附加依赖项”,并一条一条分别加入,一条一行(一个回车),(注意行末不要加";")否则会出现类似以下错误:1>LINK: fatal error LNK1104: 无法打开文件“…….lib”
  • 如果下载的OpenCV不是2.3.1版本,请将"XXX231d.lib"中的"231"更改为对应的版本号,例如:下载OpenCV 2.4.0,则统一改为"XXX240d.lib",否则会出现类似以下错误:1>LINK: fatal error LNK1104: 无法打开文件“XXX.lib”


DSC00010.png











  • 为项目的Release配置增加[附加依赖项 Additional Dependencies]:opencv_calib3d231.lib; opencv_contrib231.lib; opencv_core231.lib; opencv_features2d231.lib; opencv_flann231.lib; opencv_gpu231.lib; opencv_highgui231.lib; opencv_imgproc231.lib; opencv_legacy231.lib; opencv_ml231.lib; opencv_objdetect231.lib; opencv_ts231.lib; opencv_video231.lib (可根据实际需要删减)*


DSC00011.png











  • 编译运行下面的例程(需要将lena.jpg文件放在项目目录下,即与生成的.exe文件同位置)(这里有误。双击exe的话,图片放在.exe同一文件夹内;按F5直接运行程序的话,lena.jpg要放在helloopencv\helloopencv里)。


/***********************************************************************
* OpenCV 2.3.1 测试例程
* 于仕琪 提供
***********************************************************************/
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
const char* imagename = "lena.jpg";
//从文件中读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
//显示图像
imshow("image", img);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}





DSC00012.png

程序运行结果图





  
  原文地址:http://wiki.opencv.org.cn/index.php/首页

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-220402-1-1.html 上篇帖子: windows下多tomcat配置 下篇帖子: Windows 窗体控件的布局
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表