无法生成OpenCV文件

  • 本文关键字:OpenCV 文件 opencv
  • 更新时间 :
  • 英文 :


我正在尝试构建这个代码

#include "stdafx.h"
#include <iostream>
#include <math.h>
#include "opencv2/core/core_c.h"
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/highgui/highgui.hpp"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{   
    int pixel;
    Mat matC1_32S;
    return 0;
}

我得到一个错误:

1>c:test1test1test1.cpp(21): error C2065: 'Mat' : undeclared identifier
1>c:test1test1test1.cpp(21): error C2146: syntax error : missing ';' before identifier 'matC1_32S'
1>c:test1test1test1.cpp(21): error C2065: 'matC1_32S' : undeclared identifier

我应该有哪些附加内容?还是别的什么?

您没有为Mat提供命名空间。如果您在编译时链接到OpenCV库,这将起作用:

#include "stdafx.h"
#include <iostream>
#include <math.h>
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace std;
int _tmain(int argc, _TCHAR* argv[]) {
   int pixel;
   cv::Mat matC1_32S;
   return 0;
}

或者,您可以在_tmain之前添加using namespace cv;,这样您就不必为每次出现做序。

此外,你的#include语句做得太过火了。您不需要*_c.h文件。(也许你在试图弄清楚为什么Mat没有被声明时添加了这些。)

谢谢你的帮助,但为了让它发挥作用,我实际上还必须包括以下

#ifdef _DEBUG 
  #pragma comment(lib, "opencv_core231d.lib") 
  #pragma comment(lib, "opencv_highgui231d.lib") 
  #pragma comment(lib, "opencv_imgproc231d")
  #pragma comment(lib, "opencv_objdetect231d.lib")
#else 
  #pragma comment(lib, "opencv_core231.lib") 
  #pragma comment(lib, "opencv_highgui231.lib") 
  #pragma comment(lib, "opencv_imgproc231.lib")
  #pragma comment(lib, "opencv_objdetect231.lib")
#endif 

我理解为什么我需要"using namespace cv",但为什么我需要带有pragma的这些东西,尽管我在项目属性中提供了库路径。(使用的是VisualStudio 10

您必须转到properties >> C/C++ >> Avanced >> Compile As并选择Compile as C++ code /TP我做到了。它有效。

最新更新