我是靠谱客的博主 神勇小松鼠,最近开发中收集的这篇文章主要介绍OpenCV2.3.1+VS2005配置方法OpenCV2.3.1+VS2005,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

OpenCV2.3.1+VS2005

下载OpenCV

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

 

3  安装CMake

从 http://www.cmake.org/cmake/resources/software.html 下载 Windows (Win32 Installer) 安装。

文件CMake 2.8就位于opencv2.3.1之下

 

4  编译OpenCV

    1 用CMake导出VC++项目文件

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

     2编译 OpenCV Debug和Release版本库(若有几个错误可以再次操作,就可以了;再次操作仍然有错误,可以先忽略)

     完成上一步骤后,将在c:OpenCV2.3.1opencvbuildvs2005目录下生成OpenCV.sln的VC Solution File,请用vs2005打开OpenCV.sln,然后执行如下操作:

  • 在Debug下,选择Solution Explorer(解决方案资源管理器)里的 Solution OpenCV(解决方案“OpenCV”),点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
  • 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。

  全部运行完毕后,针对你的系统的OpenCV库就生成了。

 

5 配置Vs2005

   1 配置include路径

也即告诉Vs去什么地方寻找OpenCV的头文件,打开Vs,选择菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”->“包含文件”,包含c:OpenCV2.3.1opencvbuildvs2005installinclude;c:OpenCV2.3.1opencvbuildvs2005installincludeopencv;c:OpenCV2.3.1opencvbuildvs2005installincludeopencv2.  如图(是VS2005文件夹下的install,前面的是相对路径,不必完全一样

 2配置lib路径

   也即告诉VC去什么地方寻找OpenCV的库文件。

  • 自己编译的库,库目录为:c:OpenCV2.3.1opencvbuildvs2005installlib,如图

 

3设置环境变量(非常重要,出现问题首先检查这里

刚才设置的是动态库,因此还需要将OpenCV的dll文件所在的目录加入Path环境变量。

自己编译的库,dll目录为:c:OpenCV2.3.1opencvbuildvs2005installbin

   如下图所示将dll目录文件路径加到:系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。

环境变量不要太混乱,比如userA配置的同一版本的环境变量,userB也配置了,有可能build无问题,运行时出现“无法启动此程序,因为计算机中丢失XXX.dll文件的情况”并且提示你重装,千万不要重装。

 

使用OpenCV 2.3.1编程

   1 打开vs2005新建一个win32程序,

  2。输入以下程序,(需要将lena.jpg文件放在项目目录下,即与生成的.exe文件同位置)。

[html] view plain copy

 print?

1.  // opencv2.3.1test.cpp : 定义控制台应用程序的入口点。  

2.  //  

3.    

4.  #include "stdafx.h"  

5.    

6.  #include <opencv2/opencv.hpp>   

7.    

8.  using namespace std;  

9.    

10. using namespace cv;   

11.   

12.   

13. int _tmain(int argc, _TCHAR* argv[])  

14. {  

15.     char* imagename = "k2.jpg";//从文件中读入图像  

16.   

17.     IplImage* img = cvLoadImage( "k2.jpg",1 );  

18.   

19.     if(!img)//如果读入图像失败  

20.   

21.     {  

22.   

23.         fprintf(stderr,"Can not load image %sn", imagename);  

24.   

25.         return -1;  

26.   

27.     }   

28.   

29.     cvShowImage("image", img);  

30.   

31.     waitKey();  

32.   

33.     return 0;  

34.       

35. }  


3为项目配置增加[附加依赖项 AdditionalDependencies]:

Project-propertes-linker-input在[链接器 LINKER]的[输入INPUT]中,

为项目的Debug置增加 [附加依赖项 AdditionalDependencies]:

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

(若无此操作,将会在debug下报错:

errorLNK2001: unresolved external symbol _cvCreateFileCapture

errorLNK2001: unresolved external symbol _cvWaitKey

errorLNK2001: unresolved external symbol _cvGetSize

errorLNK2001: unresolved external symbol _cvReleaseCapture

errorLNK2001: unresolved external symbol _cvCalibrateCamera2

errorLNK2001: unresolved external symbol _cvDrawChessboardCorners

errorLNK2001: unresolved external symbol _cvQueryFrame

errorLNK2001: unresolved external symbol _cvReleaseMat

errorLNK2001: unresolved external symbol _cvSave

……)

 

 

 (可根据实际需要删减)

注意,请打开了新编辑窗口(即点击了“...”按钮)“附加依赖项”,并一条一条分别加入,一条一行(一个回车),(注意行末不要加";"否则会出现类似以下错误:1>LINK : fatalerror LNK1104: 无法打开文件“…….lib”   

如果下载的OpenCV不是2.3.1本,请将"XXX231d.lib"中的"231"更改为对应的版本号,

例如:下载OpenCV 2.4.0,则统一改为"XXX240d.lib",否则会出现类似以下错误:1>LINK : fatal errorLNK1104: 无法打开文件“XXX.lib”

 

为项目的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

(若无此操作,将会在relesae下报错:

errorLNK2001: unresolved external symbol _cvCreateFileCapture

errorLNK2001: unresolved external symbol _cvWaitKey

errorLNK2001: unresolved external symbol _cvGetSize

errorLNK2001: unresolved external symbol _cvReleaseCapture

errorLNK2001: unresolved external symbol _cvCalibrateCamera2

errorLNK2001: unresolved external symbol _cvDrawChessboardCorners

errorLNK2001: unresolved external symbol _cvQueryFrame

errorLNK2001: unresolved external symbol _cvReleaseMat

errorLNK2001: unresolved external symbol _cvSave

……)

 

 (可根据实际需要删减)* 

 如图:为bebug加入依赖项

  

参考资料http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.3.1

 

 

 

上述所有过程完成,若还有问题,如“应用程序无法正常启动(0xc0150002)”,则新建环境变量TBB:

变量名:TBB

变量值:C:opencv2.3.1opencvbuildcommontbbia32vc8

 

 

 

 

主程序应当包含的头文件:

#include "stdafx.h"

#include <opencv2/opencv.hpp>

#include <string>

#include <iostream>

using namespace std;

最后

以上就是神勇小松鼠为你收集整理的OpenCV2.3.1+VS2005配置方法OpenCV2.3.1+VS2005的全部内容,希望文章能够帮你解决OpenCV2.3.1+VS2005配置方法OpenCV2.3.1+VS2005所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部