将OpenCV 2.4.2与Visual Studio 2010链接

时间:2012-07-18 11:23:38

标签: visual-studio-2010 visual-studio opencv

我已按照此处所述安装了OpenCV:Installing openCV 2.4 for C/C++ for Visual Studio

我尝试链接openCV库,我被this tutorial中的“本地方法”所困。

我有两个openCV文件的地方: [username] / opencv(官方)/我在哪里提取openCV源码(进一步称为源目录) [username] / opencv-build /我使用cmake构建openCV然后用Visual Studio编译它(进一步称为构建目录)

我尝试遵循的教程说链接$(OPENCV_DIR)\ include,它指的是构建目录。但是,我的构建目录中的“include”文件夹只包含一些cmake文件,而源目录中的“include”包含openCV头文件(在文件夹opencv和opencv中)。我理解我宁愿使用源目录,但我尝试了两者,但没有一个能够工作。

接下来,教程说链接$(OPENCV_DIR)\ libs。我有一个文件夹“lib”所以我想这只是一个拼写错误。我的文件夹“lib”包含两个文件夹:“Debug”和“Release”。我应该将[username] / opencv-build / lib / Debug添加到Debug Property Page,将[username] / opencv-build / lib / Release添加到Release Property Page吗?

我已在两个属性页中为链接器输入添加了242个版本库。

无论我做了什么,Visual Studio都会突出显示所有include语句,以及其他所有内容。

#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

任何想法我做错了什么?


go4sri回答后编辑:

更改为opencv \ include \ opencv解决了包含问题(“stdafx.h”除外),但是我现在尝试了以下“hello world”:

 #include <cv.h>
 #include <highgui.h>

 int main ( int argc, char **argv )
 {
     cvNamedWindow( "My Window", 1 );
     IplImage *img = cvCreateImage( cvSize( 640, 480 ), IPL_DEPTH_8U, 1 );
     CvFont font;
     double hScale = 1.0;
     double vScale = 1.0;
     int lineWidth = 1;
     cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,
             hScale, vScale, 0, lineWidth );
     cvPutText( img, "Hello World!", cvPoint( 200, 400 ), &font,
             cvScalar( 255, 255, 0 ) );
     cvShowImage( "My Window", img );
     cvWaitKey();
     return 0;
}

虽然,包括不再突出显示,但其他一切仍然是。错误是“标识符XXX未定义”。


修改

我已将以前版本的openCV中的部分文件复制到<source_directory>\include\opencv2。现在Visual Studio没有突出显示任何内容,但是当我尝试构建它时,我得到“未解析的外部符号”错误:_cvCreateImage,_cvInitFont,_cvNamedWindow,_cvPutText,_cvShowImage和_cvWaitKey。

1 个答案:

答案 0 :(得分:1)

您使用源目录中的include是正确的。

将包含更改为:

#include <opencv\cv.h>
#include <opencv\cxcore.h>
#include <opencv\highgui.h>

它们都包含在include下的opencv目录中。这是使用Opencv的标准方法。

但是,您也可以将包含选项更改为<source_dir>\include\opencv;<source_dir>\include\opencv2;<source_dir>\include [不推荐使用]

对于libs:

是。使用Debug的其他库目录选项中的Debug目录(和发行版的Release) 您还需要更改输入库名称 - 请注意,所有调试库都以 d 结尾,而发布库则不会。 例如:

调试lib将命名为:opencv_imgproc242d.lib 发布lib将命名为:opencv_imgproc242.lib

希望这会有所帮助......