现在的位置: 首页 > 综合 > 正文

OpenCV2.1 、2/。3+ VS2010的配置

2013年10月01日 ⁄ 综合 ⁄ 共 5134字 ⁄ 字号 评论关闭

 OpenCV2.1 、2/。3+ VS2010的配置

 因为实验室的项目,想用OpenCV实现,刚好电脑上已经装了VS2010,就想把OpenCV整到VS中用,前后仅是配置环境就花了我老么长时间,总结下吧…本人系统是XP SP3,至于Windows 7, Vista等系统可以其他帖子.

     本文参考了网上很多帖子,几个帮助比较大的链接如下:

     http://neocv.blogbus.com/logs/65020560.html

     http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=10070&start=0

     http://www.cnblogs.com/skyseraph/archive/2010/10/28/1863974.html

     步骤:

     ① 运行Cmake gui,选择好where..路径和where to…路径 [自己建立VS2010目录 D:\Program Files\OpenCV-2.1\vs2010]

     ② 点configure,选择Visual Studio 10,点finish,待变红色后;

勾选BUILD_SHARED_LIBS,BUILD_TESTS,OPENCV_BUILD_3DPARTY_LIBS,以及下面的WITH_JASPER,WITH_JPEG,WITH_PNG,WITH_TBB(一般这个没默认选上),和WITH_TIFF选项  ,去掉BUILD_NEW_PYTHON_SUPPORT(默认选上);

     ③ 再次点击configure,TBB_INCLUDE_DIR-NOTFOUND字样的红色选项,此处为CMAKE找不到INTEL TBB的包含文件为之所致,将INTEL TBB 3.0里面的INCLUDE文件夹路径(注意是INCLUDE,不是INCLUDE里面的子文件夹)定位到该配置属性的路径里,

     ④ 再次点击Configure,在TBB_LIB_DIR处又会出现红色一行,此处为INTEL TBB的库文件位置,此处必须将路径定位到含有LIB文件的位置,比如我的安装位置是D:/Program Files/tbb30_20100406oss/lib/ia32/vc10,由于是配置VS2010,所以我们选择VC10文件夹,ia32子文件夹是32位系统,此处应根据对应操作系统选择。

    ⑤ 点击generate,生成工程文件

  •        3 编译OpenCV:

    ① 用VS2010打开OpenCV.sln[上述目录VS2010中生成的]

    ② 右击解决方案资源管理器中的属性管理器,依次展开ALL_BUILD—Debug|Win32 — 右键单击Microsoft.Cpp.Win32.user,选择Properties(属性),然后选择VC++ Directories(VC++目录),在Executable Directories(可执行文件目录)里面将INTEL TBB 3.0的可执行路径(bin)填写到里面,须定位到VC10才可以,如我的是D:/Program Files/tbb30_20100406oss/lib/ia32/vc10,将Include
Directories(包含目录)定位到Intel TBB的Include文件夹即可,无需再往深入定位,在Library Directories(库目录)里填写Intel TBB的LIB文件位置,定位到VC10文件夹

    ③ 在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。

    ④ 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。

  •       4  配置环境变量:

    ① 配置Windows的环境变量:把bin的路径加入Path   例如我的分别为: D:\Program Files\tbb30_20100406oss\bin\ia32\vc10;D:\Program Files\OpenCV-2.1\vs2010\bin   配置之后需重启

    ② 为VS2010配置OpenCV环境:同步骤3的②,依次展开后,在VC++ Directories(VC++目录)中增加D:\Program Files\OpenCV2.1\vs2010下的可执行文件(bin)、包含文件(include\opencv)、以及库文件(lib)、源文件(src\cv、src\cvaux、src\cxcore、src\highgui、src\ml)

  •      5  编程配置:新建项目opencvhello,为项目配置增加依赖的库,具体如下

    选择Solution Explorer里的opencvhello项目,点击鼠标右键,选择Properties,在[链接器 LINKER]的[输入INPUT]中;

为项目的Debug配置增加依赖的库: cv210d.lib;cvaux210d.lib;cxcore210d.lib;highgui210d.lib;ml210d.lib; 

为项目的Release配置增加依赖的库:cv210.lib;cvaux210.lib;cxcore210.lib;highgui210.lib;ml210.lib;

注意:添加依赖库的时候最好添加个文件,换行再添加下一个

--------------------------------------------------------------------------------

例程来自http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0

 

/*********************************************************************** *

 OpenCV 2.0 测试例程 * 于仕琪 提供

 ***********************************************************************

/ #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;

 }

 

--------------------------------------------------------------------------------

以上是稍微修改其他作者的原文,下面列举我碰到过的问题:

  1. [LDR: LdrpWalkImportDescriptor() failed to probe D:\Program Files\OpenCV2.1\bin\cxcore210d.dll for its manifest, ntstatus 0xc015000] 这种问题折磨我好半天,其实仔细点你就会发现,文件路径并不是我们生成vs2010下的dll文件,检查发现是我在步骤3中将路径添加错了,发现网上问这问题的人还不少,呵呵…
  2. [cv::imread不能载入图片,而当用fopen打开文件时,可以打开]  cv::imread是matlab风格的函数调用,以前好像并没有,换下cvLoadImage()方法试试,代码得重写…
  3. [程序编译没有出错,而运行却一直是不能载入图片…] 换做cvLoadImage还是不行,唉,最后我将载入的文件以全路径传给程序,行了,无语…
  4. [无法找到*.dll,我没碰到这种问题,其他人碰到过,此时检查环境变量是否添加正确,如无添加后重启电脑试试…]

--------------------------------------------------------------------------------

附上本人的程序…

#include "stdafx.h" 

#include "cv.h" 

#include "highgui.h" 

 

 int _tmain(int argc, char* argv[]) 

   const char* imagename = "D:\\Backup\\visual studio 2010\\Projects\\OpenCVTest3\\Debug\\lena.jpg"; 

   IplImage* img;

 

   if( (img = cvLoadImage( imagename, CV_LOAD_IMAGE_GRAYSCALE ) ) != 0 ) 

   {

     printf("Load Successfully\n"); 

   }

   else

   {

     printf("Load Unsuccessfully\n"); 

     return -1;

   }

 

   cvNamedWindow( "Lena", 1 ); 

   cvShowImage( "Lena", img ); 

   cvWaitKey(0); 

   cvReleaseImage( &img );

   cvDestroyAllWindows();

   return EXIT_SUCCESS;

 }

VS2010下配置 OpenCV2.2

下载OpenCV2.2 安装

我的安装路径是D:\Program Files\OpenCV2.2

打开VS2010

新建项目HelloOpencv

中    单击
打开
打开
分别在包含目录加入
D:\Program Files\OpenCV2.2\include
D:\Program Files\OpenCV2.2\include\opencv
在库目录加入
D:\Program Files\OpenCV2.2\lib
单击应用
选择 连接器-->输入
在附加依赖项中  增加所要包含的库就行了
opencv_core220d.lib
opencv_highgui220d.lib
opencv_video220d.lib
opencv_ml220d.lib
opencv_legacy220d.lib
opencv_imgproc220d.lib
 点击应用   确定
下面可以试一下是不是配置成功
输入代码:
#include "stdafx.h"
#include "cv.h"
#include <cxcore.h>
#include <highgui.h>

int _tmain(int argc, _TCHAR* argv[])
{
        IplImage *img = cvLoadImage("funny-pictures.jpg");
        cvNamedWindow("Image:",1);
        cvShowImage("Image:",img);

        cvWaitKey();
        cvDestroyWindow("Image:");
        cvReleaseImage(&img);

        return 0;

}

 将图片  funny-pictures.jpg  放在[VS2010默认项目文件夹]\HelloOpenCV\HelloOpenCV 下 
运行结果

抱歉!评论已关闭.