2012-07-18 116 views
1

我已經按照此處所述安裝了OpenCV:Installing openCV 2.4 for C/C++ for Visual Studio將OpenCV 2.4.2與Visual Studio 2010鏈接

我嘗試鏈接openCV庫,並在this tutorial中卡住「本地方法」。

我有OpenCV的文件的兩個地方: [用戶名]/OpenCV的(負責人)/其中I提取的OpenCV源(進一步稱爲源目錄) [用戶名]/OpenCV的建造/在我建立使用cmake OPENCV和然後用Visual Studio進行編譯(進一步稱爲構建目錄)

我試圖遵循的教程說鏈接$(OPENCV_DIR)\ include它指的是建立目錄。但是,我的build目錄中的「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 "stdafx.h" 
#include <cv.h> 
#include <cxcore.h> 
#include <highgui.h> 

任何想法我做錯了什麼? go4sri答案後


編輯:

更改爲OpenCV的\包括\ 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。

+0

[這個討論有一個很好的解決方案(HTTP:/ /stackoverflow.com/questions/10901905/installing-opencv-2-4-3-in-visual-c-2010-express/10901906#10901906)>如果你想進一步學習OpenCV中的圖像處理,然後[OpenCv教程](http://opencv-srf.blogspot.in/) – 2013-12-14 06:20:26

回答

1

你是正確的使用包括從源目錄。

更改包括到:

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

它們都包含在OpenCV的目錄下include.This是使用的OpenCV的標準方式。

但是,您還可以更改的選項包括<source_dir>\include\opencv;<source_dir>\include\opencv2;<source_dir>\include [這是不推薦]

對於庫:

是。使用Debug目錄中的Debug目錄選項(和發行版) 您還需要更改輸入庫名稱 - 請注意,所有調試庫以d結尾,而發行版lib不包含。 例如:

調試LIB將被命名爲:opencv_imgproc242d.lib 發佈LIB將被命名爲:opencv_imgproc242.lib

希望這有助於...

+0

謝謝!這解決了一些問題,但我仍然無法建立該項目。看到編輯的問題。 – 2012-07-18 12:14:26

+0

對不起,我很含糊。您需要保留原始內容並將新內容添加到包含列表中。所以,最後一個會像looke:' \ include \ opencv; \ include \ opencv2; \ include;'我編輯了我的答案來反映這一點。 – go4sri 2012-07-18 12:43:03

+0

如果您必須更改的代碼量較少,我建議您在屬性中只包含一個包含目錄,並在源文件中將添加到單個文件中。 – go4sri 2012-07-18 12:44:16