`
xitong
  • 浏览: 6186223 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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 下
运行结果

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics