2014-03-06 67 views
2

我是新來的OpenCV和C++編程。 我最近安裝,並通過此鏈接在Visual Studio 2010中配置OpenCV的2.4.8: http://opencv-srf.blogspot.com/2013/05/installing-configuring-opencv-with-vs.htmlOpenCV 2.4.8 Microsoft Visual C++ 2010 Express中的代碼錯誤

然後我測試,如果我做得對通過測試的代碼,使其:

#include "opencv2/highgui/highgui.hpp" 
#include "StdAfx.h" 
#include <iostream> 

using namespace cv; 
using namespace std; 

int main(int argc, const char** argv) 
{ 
    Mat img = imread("C:\Users\jay\Google Drive\profilepic", CV_LOAD_IMAGE_UNCHANGED); //read the image data in the file "MyPic.JPG" and store it in 'img' 

    if (img.empty()) //check whether the image is loaded or not 
    { 
     cout << "Error : Image cannot be loaded..!!" << endl; 
     //system("pause"); //wait for a key press 
     return -1; 
    } 

    namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow" 
    imshow("MyWindow", img); //display the image which is stored in the 'img' in the "MyWindow" window 

    waitKey(0); //wait infinite time for a keypress 

    destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow" 

    return 0; 
} 

不幸的是,它給了錯誤:

1>------ Build started: Project: ConsoleApplication1, Configuration: Debug Win32 ------ 
1> ConsoleApplication1.cpp 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(1): warning C4627: '#include "opencv2/highgui/highgui.hpp"': skipped when looking for precompiled header use 
1>   Add directive to 'StdAfx.h' or rebuild precompiled header 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(5): error C2871: 'cv' : a namespace with this name does not exist 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(10): error C2065: 'Mat' : undeclared identifier 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(10): error C2146: syntax error : missing ';' before identifier 'img' 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(10): error C2065: 'img' : undeclared identifier 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(10): warning C4129: 'j' : unrecognized character escape sequence 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(10): warning C4129: 'G' : unrecognized character escape sequence 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(10): warning C4129: 'p' : unrecognized character escape sequence 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(10): error C2065: 'CV_LOAD_IMAGE_UNCHANGED' : undeclared identifier 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(10): error C3861: 'imread': identifier not found 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(12): error C2065: 'img' : undeclared identifier 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(12): error C2228: left of '.empty' must have class/struct/union 
1>   type is ''unknown-type'' 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(19): error C2065: 'CV_WINDOW_AUTOSIZE' : undeclared identifier 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(19): error C3861: 'namedWindow': identifier not found 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(20): error C2065: 'img' : undeclared identifier 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(20): error C3861: 'imshow': identifier not found 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(22): error C3861: 'waitKey': identifier not found 
1>c:\users\jay\documents\visual studio 2010\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(24): error C3861: 'destroyWindow': identifier not found 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

希望你能告訴我我的代碼有什麼問題。 我是這個OpenCV的東西和C++的新手。

回答

4

#include "StdAfx.h" 

應該是第一,任何其他包括前。
這就是爲什麼編譯器警告你跳過了highgui頭。

+0

它仍然會產生錯誤,如「無法找到或打開PDB文件,,,」我的安裝openCV的方式與這些錯誤有關嗎?我總是在教程中看到他們使用CMake來安裝openCV,但我選擇不使用CMake就單獨安裝openCV,因爲它需要很長時間並且很複雜。 – user3388464

+0

@ user3388464你什麼時候得到這些錯誤,他們具體是什麼?在運行程序的時候,當它加載沒有調試信息的DLL時,在VS的輸出窗口中看到那些負載是正常的。 – molbdnilo

+0

當我再次建立它..這裏是我的問題關於這個錯誤的鏈接http://stackoverflow.com/questions/22277668/error-cannot-find-or-open-the-pdb-file-error-in- in-vs-c-2010/22277941?noredirect = 1#22277941 – user3388464

相關問題