OpenCV2.3 Visual Studio 2010 Windows7 X64 配置全过程(转+自己的经历)

 

在我的电脑上配了两个星期的opencv2.1一直没有出现问题,后来才发现自己的电脑是64位,而一直按照32位的去配,于是在网上找到了这篇文章,和大家共勉。

这个篇文章让我最后再win764bit上,vs2010环境下配好了opencv2.3(不过还是想配2.1的,没有找到相应的文章),有相应必要的修改,与大家共勉!

 

chapter 1   配置 OpenCV 需要准备哪些软件? 

 

首先是版本的问题,对于所安装和配置的软件包,首先版本上要兼容。本人所用的软件列表如下,都是免费,都可以官网下载:

 

 1. cmake-2.8.1-win32-x86 

 关于此软件的介绍参照:http://en.wikipedia.org/wiki/Cmake . 简单来说,是一个Build软件,利用本身自带的gui界面程序可以进行近乎傻瓜式的操作。

 2. OpenCV-2.3.1-win-superpack.exe

 主角!具体介绍参照:http://opencv.willowgarage.com/wiki/ . 简单的来说,是一个用C/C++写成的专门用来图像处理和机器视觉的开源程序包。2.3.1为写博客为止的最新版本。其功能强大,本人也是才开始学习。

 3. intel TBB 3.0

 http://www.threadingbuildingblocks.org/uploads/77/151/3.0/tbb30_20100406oss_win.zip

此程序属于第三方支持,并非是必须,不过在此出现是用来提供并行计算。简单的说,因为OpenCV的默认环境为单核单CPU,所以要想充分利用双核或者多核的机器实现并行运算,需要配置此软件。除此之外,还有很多第三方支持,比如QT,python等等……

 4. Visual Studio 2010

个人认为其存在的价值就是提供了非常方便的编译功能,不用自己写makefile,以及设定修改属性的人性化GUI。因为好用,所以不免费。免费的编译器比如mingw,配合eclipse使用也可以,不过两者的结合同样需要大量的配置过程。

 除了以上所用的程序之外,用到的参考资料就是opencv自带的tutorial, 这个可以在 OpenCV-2.3.1-win-superpack.exe解压之后的文件夹中的文件夹“doc”内找到,名叫 opencv_tutorials.pdf. 其中 page14 有youtube视频连接,个人觉得非常有用,适合新手。

 

 在运用以上提到的软件之前,先建立相应的文件夹,以便于存放解压缩或者build files 等等。所建立的文件夹如下:

D:\My Documents\Visual Studio 2010\OpenCV  \  opencv  \  opencv source // 用来存放解压于OpenCV-2.3.1-win-superpack.exe 的文件

                            ..\opencv   \ opencv build // 用来存放用cmake build之后的文件

                             ..\opencv \ preperty config(manual) //用来存放project configuration (后面会提到)

                             ..\Opencv \ deps // 用来存放第三方软件,比如intel TBB 3.0

 

chapter 2 解压配置第三方软件

 解压intel TBB 3.0(tbb30_20100406oss_win.zip)到文件夹 D:\My Documents\Visual Studio 2010\OpenCV\deps, 然后配置系统环境变量。右键单击桌面上的 computer, 左键单击左侧 Advanced system settings, 然后在窗口 System Properties中左键单击右下方按钮Environment Variables, 弹出对话框。 在system variables(注意是system variables, 不是 user variables for XXX)中打开path, 添加路径 “D:\My Documents\Visual Studio 2010\OpenCV\deps\Intel TBB 3.0\bin\intel64\vc10”, 确定,保存,退出。

 

chapter 3  cmake应该怎么用?

 

 首先解压  OpenCV-2.3.1-win-superpack.exe 到文件夹D:\My Documents\Visual Studio 2010\OpenCV \ opencv \ opencv source.

 安装cmake到任意路径(本人所选路径为 D:\CMake 2.8)然后打开文件cmake-gui.exe. "Where is the source code:"那一行选择刚才提到的解压后的opencv, 即 ../opencv/opencv source; "Where to build the binaries:"那一行选择想要Build之后的文件,即 ../opencv/opencv build. 点击configure, 然后再出现的列表中选择相应的编译器(窗口 specify the generator for this project)。在此注意,所选择的编译器一定要匹配,因为本人所用为Visual Studio 2010, 操作系统为win7 64位,故选择Visual Studio 10 Win64! 后面的设置中有很多是关于操作系统版本的问题,不要弄错~ 之后会在那个最大的窗口中出现一片红色,在此取消勾选 BUILD_NEW_PYTHON_SUPPORT, 勾选 WITH_TBB。 再次点击按钮configure,然后出现一个红色条,内容为TBB_INCLUDE_DIR, 然后按照下图选择它的value:(ps,请无视where to build .. 那一行中的 build2 =。=!)

 在对话框中填入路径D:/My Documents/Visual Studio 2010/OpenCV/deps/Intel TBB 3.0/include, 之后再次点击按钮 configure, 会再次出现红色条,内容为TBB_LIB_DIR, 同理,选择路径 D:/My Documents/Visual Studio 2010/OpenCV/deps/Intel TBB 3.0/lib/intel64/vc10(注意!lib的路径填写要精确到操作系统下编译器这一步!)。 之后再次点击按钮configure, 这是无红色条出现,并且在下面的安装日志中有如下信息:“Use TBB: YES”基本上就可以了。

 

 之后点击按钮Generate,成功后关闭cmake (以后没它什么事了), 查看文件夹opencv build, 应该包含如下内容:

chapter 4 在visual studio 2010中的配置

 

 在前面说到cmake 已经把生成的代码放入文件夹 ../opencv/opencv build中, 其中有一个名叫OpenCV.sln的文件(这个为VS2010 solution文件, 一个solution 包含很多projects), 双击打开。 

 简单说一下,vs2010主要有两种模式,分别是debug 和 release。 模式可以通过如图所示的位置选择。需要注意的是,因为先前我们cmake采用的是64位VS10编译器,在这里需要选择编译器x64, 而不是win32, 否则会出错。其实编译器的选择在用cmake进行Build时就选定了,后面凡是牵扯到操作系统版本的问题,一概与之匹配。

 

随后的操作是很简单,就是分别先后在debug and release模式下对project "ALL_BUILD" 进行 build。便于文件方便管理,我们可以把生成的文件同一放到一个文件夹中。其实这个可以通过build 那个名叫“INSTALL”的project就可以,方法同样,在debug 和 release模式下分别build。之后,需要的文件就被方便的存到一个名叫install的文件夹中,其路径为 D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install。内容如下图所示:

 

 至此,opencv的安装配置过程全部结束了,可以单击VS2010右上角的X退出程序。然而你可能会有疑问,这个安装之后,究竟怎么用呢?

 

chapter 5  OpenCV怎么用?

 

 opencv 提供了好多类和函数来实现各种不同的功能,然而我们要想利用这些功能,需要进行环境变量的配置。

首先是系统环境变量的配置,其目的简单的说,就是能让计算机在任何路径下都能够识别OpenCV的动态lib (也就是DLL文件)。操作为:my computer (press right button) --> Advanced system settings (left click, on the left side of this panal) -->Envrionment variables. 在弹出的对话框中选择system variables中的Path, 在其中添加路径 D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install\bin。

现在继续进行opencv的设置

首先打开一个空白的VS2010, “空白”在这里的意思是左侧的solution explorer里面什么也没有。所以我们新建一个。点击新建project,选择win32 console application, 输入相应的名称以及solution名称后,OK;在弹出的Wizard页面中点击application settings,按照下图勾选,完成后点击finish:

 

 转换页面,从solution explorer到property manager, 会发现project下面有两个文件夹,分别是Debug|win32 和 Release | win32。右键点击文件夹Debug|Win32, 选择 add new, 然后新建一个property sheet, 在此本人的命名是tester_debug。 完成之后右键点击之属性,然后分别在页面C/C++-->General-->Additional Include Directories 内添加路径D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install\include; Linker-->General--> Additional Library Directories中添加路径 D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install\lib;Linker-->Input-->Additional Dependencies 中添加如下文件,然后OK退出。:

 opencv_core231d.lib 

 opencv_imgproc231d.lib 

 opencv_highgui231d.lib 

 opencv_ml231d.lib 

 opencv_video231d.lib 

 opencv_features2d231d.lib 

 opencv_calib3d231d.lib 

 opencv_objdetect231d.lib 

 opencv_contrib231d.lib

  opencv_legacy231d.lib

  opencv_flann231d.lib

 

 需要注意的是,以上每个文件后面都有一个'd',意思是这是debug模式下的文件。还有一组跟这堆文件一模一样,只不过名称后面没有字母d, 表示这些是release模式下的文件。这两种文件共同存在于文件夹install中(你还能记清它在哪里么?)

同样的,在Release | win32下面建立一个新property sheet, 命名为tester_release, 对它执行同样的操作,除了加的那一堆*.lib文件没有后缀字母'd'。 我们可以保存着两个新建的property sheets, 在以后的每个opencv project执行前都添加这两个文件。除此之外,还有一种一劳永逸的全局改法,在这里不讲了,tutorial (还记得是哪个tutorial么?)里面说的十分详细。

 示例程序:输出照片的反色:

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
 
int main(int argc, char *argv[])
{
 
  IplImage* img = 0;
  int height,width,step,channels;
  uchar *data;
  int i,j,k;
 
  if(argc<2){
    printf("Usage: main <image-file-name>\n\7");
    exit(0);
  }
 
  // load an image 
  img=cvLoadImage(argv[1]);
  if(!img){
    printf("Could not load image file: %s\n",argv[1]);
    exit(0);
  }
 
  // get the image data
  height    = img->height;
  width     = img->width;
  step      = img->widthStep;
  channels  = img->nChannels;
  data      = (uchar *)img->imageData;
  printf("Processing a %dx%d image with %d channels\n",height,width,channels);
 
  // create a window
  cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
  cvMoveWindow("mainWin", 100, 100);
 
  // invert the image
  // 相当于 cvNot(img);
  for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++)
    data[i*step+j*channels+k]=255-data[i*step+j*channels+k];
 
  // show the image
  cvShowImage("mainWin", img );
 
  // wait for a key
  cvWaitKey(0);
 
  // release the image
  cvReleaseImage(&img );

  return 0;
 

}

 

(来自:

http://www.opencv.org.cn/index.php/OpenCV_%E7%BC%96%E7%A8%8B%E7%AE%80%E4%BB%8B%EF%BC%88%E7%9F%A9%E9%98%B5/%E5%9B%BE%E5%83%8F/%E8%A7%86%E9%A2%91%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%AF%BB%E5%86%99%E6%93%8D%E4%BD%9C%EF%BC%89#.EF.BC.881.EF.BC.89____.E5.81.87.E8.AE.BE.E4.BD.A0.E8.A6.81.E8.AE.BF.E9.97.AE.E7.AC.ACk.E9.80.9A.E9.81.93.E3.80.81.E7.AC.ACi.E8.A1.8C.E3.80.81.E7.AC.ACj.E5.88.97.E7.9A.84.E5.83.8F.E7.B4.A0.E3.80.82  )

 

 前面提到的编译器版本问题,在这个新建的project中,编译器为win32,与我们的opencv不匹配,因此需要将其改为X64。 修改为选择相应下拉菜单中的configure manager, 然后再按照下图所示配置:

 

 之后再次build,成功了,生成的.exe文件在这个路径下 :D:\My Documents\Visual Studio 2010\Projects\opencv_test\x64\Debug(or release)。 如果直接点击这个程序,会出现闪一下就关闭的问题。因为当main函数的结构是 int main(int argc, char* argv[ ])形式的时候,需要在调用的时候追加变量。在这个例子中,变量就是随便一张图片。这个exe文件应该在cmd下调用,后面跟着你想要反色的图片, 命令如下:

 

D:\My Documents\Visual Studio 2010\Projects\opencv_test\x64\Release> opencv_test.exe "D:\My Pictures\2011-09-06~10-02 Bayern, Germany\IMG_8023.JPG"

我的实现:

 

原文地址:http://knightzzyy29.blog.163.com/blog/static/122358745201191035041671/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值