Richten Sie OpenCV-2.3 für Visual Studio 2010 ein

Lesezeit: 6 Minuten

Richten Sie OpenCV 23 fur Visual Studio 2010 ein
Elfoc

Ich versuche, opencv 2.3 mit Visual Studio 2010 Express zu verwenden. Mein Code ist aus Beispiel:

#include "stdafx.h"
#include <highgui.h>

int _tmain(int argc, _TCHAR* argv[])
{
    int c;
    // allocate memory for an image
    IplImage *img;
    // capture from video device #1
    CvCapture* capture = cvCaptureFromCAM(1);
    // create a window to display the images
    cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
    // position the window
    cvMoveWindow("mainWin", 5, 5);
    while(1)
    {
        // retrieve the captured frame
        img=cvQueryFrame(capture);
        // show the image in the window
        cvShowImage("mainWin", img );
        // wait 10 ms for a key to be pressed
        c=cvWaitKey(10);
        // escape key terminates program
        if(c == 27)         
            break;
    }

    return 0;
}

Was habe ich bisher gemacht?

  • Hinzugefügt build\bin und einer von build\{x86|x64}\{vc9\vc10\mingw}\bin zu meinem Systempfad (um DLLs zu verwenden).
  • Hinzugefügt build\{x86|x64}\{vc9\vc10\mingw}\lib oder build\{x86|x64}\{vc9\vc10\mingw}\staticlib als Bibliotheksverzeichnisse zu meinen Linker-Einstellungen.
  • Hinzugefügt build\include und build\include\opencv als Include-Verzeichnisse zu meinen Compiler-Einstellungen hinzufügen.

Und das Ergebnis ist:

1>LINK: schwerwiegender Fehler LNK1104: Datei „c:\OpenCV2.3\build\x86\vc10\lib.obj“ kann nicht geöffnet werden

Da ist kein lib.obj in OpenCV-Ordnern. Ich habe nur entpackt OpenCV-2.3.0-win-superpack.exeohne die CMake-Software zu verwenden.

Was mache ich falsch?

1647064207 878 Richten Sie OpenCV 23 fur Visual Studio 2010 ein
Karl Philipp

Nun die offizieller Führer ist zum einbauen OpenCV 2.1 auf VS2010, daher habe ich unten einige Anweisungen geschrieben, die zeigen, wie man die x86 Version von OpenCV 2.3 an Visual Studio 2010 (Express), da viele Leute Probleme haben, es richtig einzurichten.

Herunterladen OpenCV-2.3.0-win-superpack.exe und führen Sie es aus, um alle Dateien in einen Ordner mit dem Namen zu extrahieren OpenCV2.3. In diesem Ordner befinden sich 2 Verzeichnisse: build und opencv. Alle Einstellungen auf VS2010 beziehen sich auf die build Verzeichnis. Aus praktischen Gründen habe ich den Ordner verschoben OpenCV2.3 zu meinem C:\ fahren, achten Sie also auf die Pfade, die ich in diesem Handbuch vorschlage, da Ihre möglicherweise anders sind.

Erstellen Sie in Visual Studio eine neue Win32-Konsolenanwendung Projekt und nennen Sie es wie Sie wollen. Danach erscheint ein neues Fenster. Klicken Sie auf die Registerkarte Anwendungseinstellungen und stellen Sie die Option sicher Leeres Projekt wird ausgewählt:

Geben Sie hier die Bildbeschreibung ein

Fügen Sie eine neue Datei hinzu main.cpp zum Ordner Source Filesdann fügen Sie diesen Code hinzu main.cpp:

#include <stdio.h>
#include <cv.h>
#include <highgui.h>

int main(int argc, char* argv[])
{
if (argc < 2)
{
    printf("Usage: ./opencv_hello <file.png>\n");
    return -1;
}

    IplImage* img = cvLoadImage(argv[1], CV_LOAD_IMAGE_UNCHANGED);
if (!img)
{
    return -1;
}

cvNamedWindow("display", CV_WINDOW_AUTOSIZE);
    cvShowImage("display", img );

    cvWaitKey(0);        

    return 0;
}

An dieser Stelle müssen wir das Projekt so konfigurieren, dass es OpenCV-Header und -Bibliotheken finden kann. Gehen Sie zu den Projekteigenschaften (ALT+F7), und sobald das neue Fenster angezeigt wird, gehen Sie wie folgt vor:

  • Auf der Aufbau Kästchen, auswählen Alle Konfigurationen

  • Offen Konfigurationseigenschaften > C/C++ > Allgemeinund bearbeiten Sie das Feld Zusätzliche Include-Verzeichnisse um diese 3 Pfade hinzuzufügen (für die Header):

    C:\OpenCV2.3\build\include\opencv

    C:\OpenCV2.3\build\include\opencv2

    C:\OpenCV2.3\build\include

Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass include\opencv ist für die C-Schnittstelle von OpenCV und include\opencv2 if für die C++-Schnittstelle. Wir fügen auch den Ordner hinzu include um zu verhindern, dass unser Build durch einige Header der C-Schnittstelle beschädigt wird, die auf C++-Header als verweisen opencv2\core.

  • Fügen Sie dann den Pfad der Bibliotheken hinzu Konfigurationseigenschaften > Linker > Allgemeinund auf der Zusätzliche Bibliotheksverzeichnisse Feld, fügen Sie Folgendes hinzu: C:\OpenCV2.3\build\x86\vc9\lib:

Geben Sie hier die Bildbeschreibung ein

  • Schließlich werden wir für diesen einfachen Test die Bibliotheken hinzufügen opencv_core230.lib und opencv_highgui230.lib. Also geh zu Konfigurationseigenschaften > Linker > Eingabe und füge sie hinzu:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie komplexere Anwendungen schreiben, müssen Sie wahrscheinlich andere OpenCV-Bibliotheken hinzufügen, die ich in diesem kleinen Projekt von uns nicht erwähnt habe.

Drücken Sie F7 zu Lösung erstellen und du solltest sehen:

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Um die Anwendung ausführen zu können, müssen Sie modifiziere den WEG Umgebungsvariable Ihres Systems, um den Speicherort der DLLs von OpenCV hinzuzufügen. Fügen Sie dies am Ende von PATH hinzu:

; C:\OpenCV2.3\build\x86\vc9\bin

  • @Elfoc Drastisch verbesserte Antwort, um Schritt für Schritt zu zeigen, wie OpenCV 2.3 und VS2010 konfiguriert werden.

    – Karl Philipp

    12. August 2011 um 2:45 Uhr

  • Ich habe e:\opencv\build\x86\vc9\bin zur PATH-Umgebungsvariablen des Systems hinzugefügt. Ich erhalte Laufzeitfehler: opencv_core231d.dll wurde nicht gefunden …. Ich verwende Visual Studio 2008, Pentium 4 m/c. Irgendeine Idee, was der Fehler ist?

    – Kaushik Acharya

    28. Januar 2012 um 19:35 Uhr

  • Haben Sie Ihr System nach dem Bearbeiten von PATH var neu gestartet? Ein Neustart ist erforderlich, damit VS die Änderung sieht.

    – Mohsen Afshin

    22. März 2012 um 8:18 Uhr

  • @karlphillip: Hallo, 2.4.1 ist erschienen. Können Sie Ihre Antwort dafür aktualisieren? Oder ist die Vorgehensweise gleich. Ich habe es gemäß diesem Beitrag versucht: stackoverflow.com/q/10901905/1134940, hat aber nicht funktioniert. Zeigt “opencv_core240d.dll fehlt auf dem Computer”.

    – Abid Rahman K

    6. Juni 2012 um 8:07 Uhr

  • @karlphillip: großartig, mein Freund. Endlich hat es bei mir funktioniert. hat dieser Antwort bereits +1 gegeben. Also +1 für deinen anderen Link.

    – Abid Rahman K

    29. Juni 2012 um 15:13 Uhr

1647064209 279 Richten Sie OpenCV 23 fur Visual Studio 2010 ein
Pimmes111

Wenn Sie Probleme mit der Bearbeitung der PATH-Umgebungsvariablen haben, können Sie die erforderlichen .dll-Dateien auch in Ihren Projektordner kopieren:
Die DLL-Dateien befinden sich in diesem Ordner ../OpenCV2.3/build.x86/vc9/bin

Kopieren Sie sie dann in den Ordner, in dem die .exe-Datei erstellt wird:
c:\Users\PIMMES\Documents\Visual Studio 2010\Projects\eigenfaces\Debug (Natürlich müssen Sie den Pfad zu Ihrem Debug-Ordner ändern)

Sie müssen nur die DLL-Dateien kopieren, die Sie in Ihrem Projekt verwenden (z. B. #include). Wenn Sie beispielsweise eine Fehlermeldung erhalten, die besagt, dass opencv_core231d.dll nicht gefunden wurde, holen Sie sich diese DLL-Datei vom oben genannten Speicherort (bin-Ordner ) und in den Debug-Ordner Ihres Projekts kopieren.

Hoffe das hilft..

  • Vielen Dank für den Vorschlag dieser alternativen Methode. Es funktionierte einwandfrei. Ich habe die Umgebungspfadvariablen korrekt bearbeitet, obwohl die DLLs nicht korrekt erkannt werden konnten. Könnt ihr mir mögliche Gründe nennen?

    – Snehasisch

    17. Juli 2013 um 21:04 Uhr

Immer wenn ich ein Programm erstelle, das opencv 2.2 oder höher verwendet, füge ich alles hinzu und kommentiere dann die Bibliotheken aus, die ich nicht benötige. Versuchen Sie dies, ich bin sicher, Sie brauchen mehr als highgui.h

#include "opencv2\opencv.hpp"

using namespace cv;

//#pragma comment(lib, "opencv/opencv_calib3d231.lib")
//#pragma comment(lib, "opencv/opencv_contrib231.lib")
#pragma comment(lib, "opencv/opencv_core231.lib")
//#pragma comment(lib, "opencv/opencv_features2d231.lib")
//#pragma comment(lib, "opencv/opencv_flann231.lib")
//#pragma comment(lib, "opencv/opencv_gpu231.lib")
//#pragma comment(lib, "opencv/opencv_haartraining_engine.lib")
#pragma comment(lib, "opencv/opencv_highgui231.lib")
//#pragma comment(lib, "opencv/opencv_imgproc231.lib")
//#pragma comment(lib, "opencv/opencv_legacy231.lib")
//#pragma comment(lib, "opencv/opencv_ml231.lib")
#pragma comment(lib, "opencv/opencv_objdetect231.lib")
//#pragma comment(lib, "opencv/opencv_ts231.lib")
//#pragma comment(lib, "opencv/opencv_video231.lib")

992830cookie-checkRichten Sie OpenCV-2.3 für Visual Studio 2010 ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy