C++ 在VisualStudio2010项目中使用OpenCV 2.4.0

C++ 在VisualStudio2010项目中使用OpenCV 2.4.0,c++,opencv,C++,Opencv,我也问过类似的问题,但到目前为止运气不好。所以我决定问一个新的,更具体的问题 有人能告诉我OpenCV的特定文件夹或文件是否需要包含在我的C++项目中,我如何将它们包含进来?我已经在我的C:\驱动器上安装了OpenCV 2.4.0。我看过openCV网站上的教程,但它们是针对较旧版本(openCV 2.1)的,并且参考了现在不存在的文件,如objdetect.hpp(例如) 请帮忙。谢谢。请参阅 将这些添加到stdafx.h #include <opencv2/core/core.hpp&

我也问过类似的问题,但到目前为止运气不好。所以我决定问一个新的,更具体的问题

有人能告诉我OpenCV的特定文件夹或文件是否需要包含在我的C++项目中,我如何将它们包含进来?我已经在我的C:\驱动器上安装了OpenCV 2.4.0。我看过openCV网站上的教程,但它们是针对较旧版本(openCV 2.1)的,并且参考了现在不存在的文件,如objdetect.hpp(例如)

请帮忙。谢谢。

请参阅

将这些添加到stdafx.h

#include <opencv2/core/core.hpp>        // cv::Mat etc, always need this
#include <opencv2/imgproc/imgproc.hpp>  // all the image processing functions
#include <opencv2/highgui/highgui.hpp>  // Display and file I/O
#包括//cv::Mat等,总是需要这个
#包括//所有图像处理功能
#包括//显示和文件I/O
假设您已将OPENCV_DIR设置为放置OPENCV的位置,例如
OPENCV_DIR=c:\opencv2.4\OPENCV

然后将项目设置中的VC++目录设置为 包括添加
$(OPENCV\u DIR)\Include
和向库添加
$(OPENCV\u DIR)\lib

然后在“链接器输入”中添加opencv_core240.lib(用于调试的opencv_core240D.lib)、opencv_imgproc240.lib和opencv_highgui240.lib等

将这些添加到stdafx.h

#include <opencv2/core/core.hpp>        // cv::Mat etc, always need this
#include <opencv2/imgproc/imgproc.hpp>  // all the image processing functions
#include <opencv2/highgui/highgui.hpp>  // Display and file I/O
#包括//cv::Mat等,总是需要这个
#包括//所有图像处理功能
#包括//显示和文件I/O
假设您已将OPENCV_DIR设置为放置OPENCV的位置,例如
OPENCV_DIR=c:\opencv2.4\OPENCV

然后将项目设置中的VC++目录设置为 包括添加
$(OPENCV\u DIR)\Include
和向库添加
$(OPENCV\u DIR)\lib


然后在“链接器输入”中添加opencv_core240.lib(opencv_core240D.lib用于调试)opencv_imgproc240.lib和opencv_highgui240.lib等

opencv的文件夹结构在2.4中已更改,因此您应该使用教程中未提及的其他文件夹:

  • OPENCV\u DIR
    指向生成目录(例如
    C:\OPENCV\build
    ),而不是特定于平台的目录
  • Path变量必须指向特定于平台的bin目录(例如
    %OPENCV\u DIR%\x86\vc10\bin
  • …链接器属性也是如此(例如,
    $(OPENCV\u DIR)\x86\vc10\lib

OpenCV的文件夹结构在2.4中已更改,因此您应该使用教程中未提及的其他文件夹:

  • OPENCV\u DIR
    指向生成目录(例如
    C:\OPENCV\build
    ),而不是特定于平台的目录
  • Path变量必须指向特定于平台的bin目录(例如
    %OPENCV\u DIR%\x86\vc10\bin
  • …链接器属性也是如此(例如,
    $(OPENCV\u DIR)\x86\vc10\lib

这是最新的:这是最新的:我在这里想到的第一件事是“为什么子库不总是包含core?”但这更适合OpenCV网站。@Kevin-你可以创建一个“OpenCV.hpp”,其中包含所有其他的,但预编译头就是这样做的。不幸的是,库的数量正在增加,因为它们必须分离出在某些国家获得专利的功能——尽管手机将有一个opencv_global.lib,在手机中很难有很多libsI,但这并不意味着“总是包含所有内容”我的意思是,如果您总是需要包含这一行标题,以便其他人使用,为什么其他人不包含它,从而在他们的文件中再保存一行用户不需要的内容?有些东西告诉我它们是,额外的include是多余的,但是我以前没有使用过这个库,这只是我看到你的代码片段时想到的第一件事。如果我只是错误地解释了你的代码片段,那么请原谅我。@kevin-其他每个库都必须包含core,因为你可以使用imgproc,但不能使用highgui或vv。“C/C++”方法是在程序级别执行此操作,而不是链接其他包含。C++ STL更糟,你必须知道继承树来获得一个简单的控制台打印的内容。我首先想到的是“为什么子库永远不包括核心”?但是这是更适合OpenCV网站的。@凯文-你总是可以创建一个“OpenCV。HPP”,包括所有其他的。但这就是预编译头的作用。不幸的是,库的数量正在增加,因为它们必须分离出在某些国家获得专利的功能——尽管手机将有一个opencv_global.lib,在手机中很难有很多libsI,但这并不意味着“总是包含所有内容”我的意思是,如果您总是需要包含这一行标题,以便其他人使用,为什么其他人不包含它,从而在他们的文件中再保存一行用户不需要的内容?有些东西告诉我它们是,额外的include是多余的,但是我以前没有使用过这个库,这只是我看到你的代码片段时想到的第一件事。如果我只是错误地解释了你的代码片段,那么请原谅我。@kevin-其他每个库都必须包含core,因为你可以使用imgproc,但不能使用highgui或vv。“C/C++”方法是在程序级别执行此操作,而不是链接其他包含。C++ STL更糟,必须知道继承树才能获得简单控制台打印的包含