OpenCV在VC.net,VC6.0等中的用法

要使用OpenCV,需要经过以下几步:
      1、下载OpenCV1.0:
          http://www.intel.com/technology/computing/opencv/index.htm
          http://OpenCV.sourceforge.net
      2、安装OpenCV
      3、设置IDE的环境变量:可执行文件、库、头文件
          假设它安装于“C:/Program Files/OpenCV”

          可执行文件列表: $(BIN)
              C:/Program Files/OpenCV/bin

          库文件列表: $(LIB)
              C:/Program Files/OpenCV/lib

          include文件列表: $(INCLUDE)
              C:/Program Files/OpenCV/cv/include
              C:/Program Files/OpenCV/cxcore/include
              C:/Program Files/OpenCV/otherlibs/highgui
              C:/Program Files/OpenCV/cvaux/include
              C:/Program Files/OpenCV/otherlibs/cvcam/include
         
      (1)VC.net
          <1> 打开VC++.net应用程序,在菜单项里选择:Tools->Options
              在列表中,选择Projects->VC++ Directories
              首先,从“Show Directories for”的list box中选择“Library files”
              单击“Insert New”图标,添加库文件列表
                  C:/Program Files/OpenCV/lib
              然後在list box中选择include文件,添加库文件列表
              同样添加可执行文件列表。
            正在装载数据……

          <2> 新建一个控制台项目,.cpp文件里面添加以下头文件:
                  #include <cv.h>
                  #include <cxcore.h>
                  #include <highgui.h>
              然后按下列步骤添加具体的依赖的库:
              从菜单:“Projcet”->“Properties”选择"Link"tab -> "Input" -> "Additional
      Dependencies"。
              添加所有需要的库(cxcore[d].lib cv[d].lib highgui[d].lib cvaux[d].lib
      cvcam[d].lib)
          <3> 大功告成,编译运行即可。
      (2)VC6.0 (拷贝他人的)
          打开Visual C++ 6.0,在Tools -> Directories选项中,Show Directories
      for中选择Include files,在其中添加
          C:/Program Files/OpenCV/cv/include
          C:/Program Files/OpenCV/cvaux/include
          C:/Program Files/OpenCV/cxcore/include
          C:/Program Files/OpenCV/otherlibs/highgui
          C:/Program Files/OpenCV/otherlibs/cvcam/include
         
          选择Source files,在其中添加
          C:/Program Files/OpenCV/cv/src
          C:/Program Files/OpenCV/cvaux/src
          C:/Program Files/OpenCV/cxcore/src
          C:/Program Files/OpenCV/otherlibs/highgui
          C:/Program Files/OpenCV/otherlibs/cvcam/src/windows
         
          选择Library files,在其中添加
          C:/Program Files/OpenCV/lib
         
          在Project Setting ->Link的Input选项中,添加在Object/library
      modules附加上cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib
      三个库文件(这一步对于每个新工程都要重新设置,而前三步不需要)。
         
          最后要把C:/Program Files/OpenCV/bin目录设为系统目录(添加到Path里面)。至此所有工作就完成了。

      (3)MinGW-GCC(以Dev C++为例)
          <1> 打开Dev C++,“工具”->“编译器选项”->“目录”
                  在“二进制”里面添加可执行文件列表;
                  在“库”里面添加库列表;
                  在“C包含文件”及“C++包含文件”里面添加头文件列表;
              然后在“编译器”选项卡里面,选中“在链接器命令行加入以下命令”,并添加以下链接命令:
                  -lcxcore -lcv -lhighgui -lcvaux -lcvcam
                  说明:  a 不能加后缀 .lib,因为其默认会自动添加.lib后缀;
                          b 这些库都是COFF格式,MinGW-GCC可以自动识别,不用转换;
                          c “-l”要小写,因为"-L"表示目录,而“-l”表示链接具体的库文件。
          <2> 新建一个控制台项目,你就可以开始工作了。
         
      (4)C++ Builder
          BCB 里面使用比较麻烦,主要是它的 .lib 文件格式是 OMF,不是COFF,所以要进行转换。
          <1> 转换 .lib 文件为 OMF 格式,使用 $(BCB)/bin 目录下面的 coff2omf.exe 工具,建立一个批处理文件
                  coff2omf cv.lib cbuilder/cv.lib
                  coff2omf cvaux.lib cbuilder/cvaux.lib
                  coff2omf cvcam.lib cbuilder/cvcam.lib
                  coff2omf cvhaartraining.lib cbuilder/cvhaartraining.lib
                  coff2omf cxcore.lib cbuilder/cxcore.lib
                  coff2omf cxts.lib cbuilder/cxts.lib
                  coff2omf highgui.lib cbuilder/highgui.lib
                  coff2omf ml.lib cbuilder/ml.lib
              不过使用coff2omf转换有些问题,网上有解释:
                 
      coff2omf可以转换微软的COFF格式为Borland使用的OMF格式。但是这个工具有一些限制:转换一般的C函数还可以,转换C++类有困难;这个工具在处理新版本的VC++生成的库时可能有问题。

                  另外,可以参考“Using Visual C++ DLLs in a C++Builder
      Project”http://www.bcbdev.com/articles/vcdll.htm和http://www.bcbdev.com/articles/vcdll2.htm

              不过,因为有bin目录里面有dll文件,可以考虑使用同一目录下面的 implib filename.lib filename.dll
      进行转换,建立如下批处理文件:
                  implib cbuilder/cv.lib cv100.dll
                  implib cbuilder/cvaux.lib cvaux100.dll
                  implib cbuilder/cvcam.lib cvcam100.dll
                  ;implib cbuilder/cvhaartraining.lib haartraining.exe
                  implib cbuilder/cxcore.lib cxcore100.dll
                  implib cbuilder/cxts.lib cxts001.dll
                  implib cbuilder/highgui.lib highgui100.dll
                  implib cbuilder/ml.lib ml100.dll
                  implib cbuilder/libguide.lib libguide40.dll
              两者转换的结果不太相同,不知哪个好:(
              ——不过只要能编译运行就可以了。
              当然,你也可以使用BCB编译出需要的库。
              把 cbuilder 目录拷贝到 OpenCV 的目录下面。
      <2> 在系统变量里面添加 OPENCV 为 C:/Program Files/OpenCV,
      设置“工具”->“环境变量”->“库”,在“库路径”里面添加 $(OPENCV)/cbuilder;$(OPENCV)/bin
      在Directories/Conditonals 里面的Include Path
      添加$(OPENCV)/cv/include;$(OPENCV)/cxcore/include;$(OPENCV)/otherlibs/highgui;$(OPENCV)/cvaux/include;$(OPENCV)/otherlibs/cvcam/include
      在Library Path 里面添加 $(OPENCV)/lib
      <3>新建一个控制台工程,不要VCL支持。然后选择“工程”->“添加到工程”,把刚才转换好的.lib文件添加到工程中即可。
      <4> 编辑你的代码,调试允许吧:)
      4、示例程序:
          读取 lena.jpg 图象并显示:
      ------------------------------------------------------------------------------
      #include <cv.h>
      #include <cxcore.h>
      #include <highgui.h>

      int main(int argc, char *argv[])
      {
          IplImage *img = cvLoadImage("lena.jpg");
          cvNamedWindow("Image:", 1);
          cvShowImage("Image:", img);

          cvWaitKey();
          cvDestroyWindow("Image:");
          cvReleaseImage(&img);
         
          return 0;
      }
      ------------------------------------------------------------------------------
      参考:
      http://www.opencv.org.cn
      http://blog.csdn.net/hunnish/
      http://groups.yahoo.com/group/OpenCV 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值