2012-03-31 7 views
0

bauen Ich versuche, diesen CodeKann nicht OpenCV Datei

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

zu bauen und ich erhalte eine Fehlermeldung:

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

Welche zusätzlichen beinhaltet sollte ich? oder etwas anderes?

+1

Namespace cv verwendet;.. Oder cv :: Mat Matte; – Sam

Antwort

3

Sie stellen keinen Namensraum für Mat zur Verfügung. Das funktioniert, wenn Sie auf die OpenCV-Bibliotheken verknüpfen, wenn Sie kompilieren:

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

Oder Sie können using namespace cv; vor _tmain hinzufügen, so dass Sie nicht jedes Aussehen Vorwort haben.

Außerdem übertreibst du die # include-Anweisungen. Sie benötigen die * _c.h-Dateien nicht. (Vielleicht kannst du diejenigen, wenn Sie versuchen, herauszufinden, warum Mat nicht erklärt wurde.)

0

Vielen Dank für Hilfe, aber es ich eigentlich auch die folgenden

#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 

I aufzunehmen hatte funktioniert verstehe, warum ich 'namespace cv benutzen muss, aber warum brauche ich dieses Zeug mit pragma, obwohl ich Bibliotheken Pfad in den Projekteigenschaften zur Verfügung gestellt habe. (Bin mit 10 Visual Studio

+0

Die Fehler, die Sie Kompilierungsfehlern zeigten sind Das Hinzufügen von 'namespace cv' würde sie beheben (obwohl ich 'cv :: Mat' anstelle von 'namespace cv' vorschlagen würde). Das fehlende '#pragma comment (lib, "opencv_core231.lib")' ist ein anderes Problem, Sie haben dem Linker zwar Pfade zur Verfügung gestellt, aber der Linker hat immer noch keine Idee, mit welcher Bibliothek er verlinkt werden soll.Sie können dies auch tun, indem Sie die Bibliotheken zu ** project Configuration Properties -> Linker -> Input -> hinzufügen Zusätzliche Abhängigkeiten ** in VisualStudio 10. – cxyzs7

+0

Vielen Dank für Ihre Hilfe –

0

Sie properties >> C/C++ >> Avanced >> Compile As gehen und wählen Compile as C++ code /TP ich es tat Es funktioniert