Anfängerprobleme mit OpenCV 2.2
-
Hallo,
ich versuche seit 2 Tagen OpenCV 2.2 mit Visual Studio 2008 Express auf einem 64 bit Rechner und Windows 7 zum laufen zu bringen.
Ich bin dabei der Anleitung auf:
http://opencv.willowgarage.com/wiki/VisualC%2B%2Bgefolgt. Diese besteht aus folgenden Schritten:
# Create your new project for C++
# Go to project properties
# Go to VC++ Directories
# Add 2 new Include Directories (it's the path where you installed OpenCV, include folder):* C:\Program Files\OpenCV2.2\include
* C:\Program Files\OpenCV2.2\include\opencv# Add 1 new Library Directory (it's the path where you installed OpenCV, lib folder):
* C:\Program Files\OpenCV2.2\lib
# Go to Linker in the left menu and select Input option
# Add these entries on Additional Dependencies option:* C:\Program Files\OpenCV2.2\lib\opencv_core220d.lib
* C:\Program Files\OpenCV2.2\lib\opencv_highgui220d.lib
* C:\Program Files\OpenCV2.2\lib\opencv_video220d.lib
* C:\Program Files\OpenCV2.2\lib\opencv_ml220d.lib
* C:\Program Files\OpenCV2.2\lib\opencv_legacy220d.lib
* C:\Program Files\OpenCV2.2\lib\opencv_imgproc220d.libIch habe die CMake benutzt und konnte OpenCV auch ohne Fehlermeldungen übersetzen. Wenn ich aber nur dieser Anleitung folge dann erhalte ich schon beim schreiben der Includes z.b.
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
Fehlermeldungen das bestimmte Dateien nicht gefunden werden. Jetzt habe ich jeder dieser Dateien einzelnd gesucht und hinzugefügt. Meine Liste under Linker->Input->Additional Dependencies sieht nun so aus:C:\OpenCV-2.2.0\built\lib\Debug\opencv_contrib220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_legacy220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_haartraining_engine.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_features2d220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_gpu220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_calib3d220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_objdetect220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_highgui220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_video220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_imgproc220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_ts220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_ml220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_flann220d.lib
C:\OpenCV-2.2.0\built\lib\Debug\opencv_core220d.libund in die Additional Includes musste ich jeden einzelen Ordner aus den Modulen einbinden bis er aufgehört hat zu meckern:
C:\OpenCV-2.2.0\modules\imgproc\include
C:\OpenCV-2.2.0\modules\video\include
C:\OpenCV-2.2.0\modules\core\include
C:\OpenCV-2.2.0\modules\highgui\include
C:\OpenCV-2.2.0\include\opencv
C:\OpenCV-2.2.0\include
C:\OpenCV-2.2.0\modules\calib3d\include
C:\OpenCV-2.2.0\modules\contrib\include
C:\OpenCV-2.2.0\modules\features2d\include
C:\OpenCV-2.2.0\modules\flann\include
C:\OpenCV-2.2.0\modules\gpu\include
C:\OpenCV-2.2.0\modules\legacy\include
C:\OpenCV-2.2.0\modules\ml\include
C:\OpenCV-2.2.0\modules\objdetect\includeDamit war es dann möglich
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>in einem C++ Projekt zu kompilieren. Sobald ich jetzt aber versuche Objekte aus der Bibliothek zu verwenden - z.b.
cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
, kommt error LNK2019 unresolved external symbol.
Gerade weiß ich keinen Rat, auch wenn ich schon etlich Foren abgesucht habe.Den Schritt:
# Add 1 new Library Directory (it's the path where you installed OpenCV, lib folder):
* C:\Program Files\OpenCV2.2\lib
habe ich aus der obigen Anleitung nicht verstanden. Soll ich die bei den includes einfügen? Eigentlich füge ich .lib-Dateien doch beim Linker ein, aber warum schreibt er dann danach ich solle zum Linker wechseln - ads würde ja heißen ich soll das .lib Verzeichnis vorher woanders einstellen?
Wenn mir jemand helfen könnte OpenCV 2.2 zum laufen zu bringen wäre ich sehr dankbar.
-
# Add 1 new Library Directory (it's the path where you installed OpenCV, lib folder):
* C:\Program Files\OpenCV2.2\lib
Das hier ist nur ein "quick guess":
Du musst diesen Pfad in den Visual Studio Konfigurationen hinzufuegen (Datei > Werkzeuge > Optionen > Projekte und Solutions > ...), und nicht etwa nur zu den Projekteinstellungen.Hugh