opencv_core245.dll & opencv_ml245.dll fehlt

710
Jessica Chambers

Ich versuche, einige wichtige Software zu installieren, die sich auf meine Arbeit bezieht (unter Windows 10), aber wenn ich versuche, es auszuführen, wird ein Fehler angezeigt, der besagt, dass die Dateien opencv_core245.dll und opencv_ml245.dll fehlen.

Ich habe versucht, zu googeln, aber die einzigen Ergebnisse, die ich erhielt, waren zwielichtige Websites und einige Viren.

Wie kann ich dieses Problem beheben?

BEARBEITEN: Die Software, die ich ausführen möchte, ist die TITARL-Anwendung, die Sie hier finden

1
Die Software sollte die Abhängigkeiten bereitstellen, so dass sie zumindest erwähnen sollten, wie sie an einen bestimmten Ort (README.txt?) Gelangen, wenn sie nicht gebündelt werden. T Nierath vor 5 Jahren 1
@TNierath Ich habe die README.txt durchforstet, nichts drin, obwohl es einige Kontaktdetails gibt ... Ich werde diese als letzten Ausweg behalten Jessica Chambers vor 5 Jahren 0
Wie die Antwort sagt, ist opencv eine bekannte Bibliothek. Sie können prüfen, ob sie Builds mit der entsprechenden Versionsnummer (2,45?) Bereitstellen. Bei der binären Kompatibilität ist Windows jedoch ziemlich chaotisch, daher werden DLLs normalerweise mit der Binärdatei selbst versehen. Viel Glück. T Nierath vor 5 Jahren 0

1 Antwort auf die Frage

0
Anaksunaman

Ein Fehler wird angezeigt opencv_core245.dllund opencv_ml245.dllfehlt.

Diese beziehen sich auf die OpenCV- Bibliothek (Open Source Computer Vision). Möglicherweise möchten Sie versuchen, das zuerst zu installieren.

Installationshinweise

  • Der OpenCV-Extraktor für Windows (derzeit als gepackt .exe) fragt nach einem Pfad, in den er extrahiert werden soll, wenn er ausgeführt wird. An opencvdiesem Ort wird automatisch ein Ordner erstellt.

  • Im weitesten Sinne sollte es egal sein, wo Sie diese Datei extrahieren. Ihr Programm hat jedoch möglicherweise bestimmte Anforderungen (die Sie überprüfen müssen) hinsichtlich der Platzierung der fehlenden DLL-Dateien.

  • Bei einigen Programmen muss möglicherweise ein Pfad zur Bibliothek in den Einstellungen festgelegt werden, bei anderen müssen Sie möglicherweise Dateien manuell ablegen, z. B. in ihren Programmordnern (oder anderen Speicherorten). Sie müssen bestätigen, welche dieser Optionen durch Ihre Programmdokumentation oder weitere Nachforschungen zutreffen.

  • OpenCV enthält eine Reihe von builds. Sie sollten die "Bitness" Ihrer ausgewählten Bibliothek-DLLs mit der "Bitness" Ihres Programms (dh 32-Bit oder 64-Bit) abgleichen.

TITARL

Für TITARL müssen die fehlenden DLLs in demselben Ordner abgelegt werden wie TITARL.exe:

OpenCV-DLL-Platzierung - Screenshot

opencv_core245.dll Und opencv_ml245.dll

Leider scheint OpenCV 2.4.5 (und diese .dlls) nicht mehr als vorkompilierte Binärdateien verfügbar zu sein. Die OpenCV 2.4.5 Library ist jedoch weiterhin als Quellcode aus dem offiziellen GitHub-Repository verfügbar . Die fehlenden DLL-Dateien müssen aus diesem Quellcode kompiliert werden, bevor das Programm ausgeführt wird.

Wenn Sie Fremden im Internet vertrauen, habe ich 64-Bit-Versionen dieser beiden DLLs für Sie zusammengestellt. Sie schienen mit dem example_learning.batmitgelieferten TITARL korrekt zu funktionieren. Sie wurden jedoch noch nicht gründlich getestet.

Vorsichtsmaßnahmen

  • Diese DLLs wurden mit Visual Studio 14 (2015) unter Windows 7 ohne Python-Unterstützung erstellt.

  • Die Unterstützung für FFmpeg und DirectShow war in den Build-Optionen enthalten, wurde aber in keiner Weise direkt getestet.

  • Außer opencv_core245.dllund wurden keine anderen DLLs gebaut opencv_ml245.dll.

Wenn Sie sich dafür entscheiden, dies zu versuchen und in Schwierigkeiten zu geraten (z. B. unerklärliche Verhaltensweisen oder andere Probleme), müssen Sie sie möglicherweise einfach selbst kompilieren. Ich gebe einen Überblick über die Schritte, die ich unten gemacht habe.


Mini-Kompilierungshandbuch für Visual Studio

Basierend auf diesem allgemeinen Handbuch zum Kompilieren von OpenCV 3 mit Visual Studio, das Sie in den Kommentaren erwähnt haben, sollten Sie mit den folgenden Schritten zumindest eine minimal funktionierende Installation von TITARL erhalten, indem Sie die erforderlichen fehlenden DLL-Dateien erstellen.

Vorbereitung

  1. Laden Sie die Microsoft Visual Studio Community Edition (kostenlos) herunter und installieren Sie sie . Sie haben auch ältere Versionen, je nach Ihren Bedürfnissen. Beachten Sie, dass ältere Versionen derzeit ein kostenloses Dev Essentials- Konto benötigen, um darauf zugreifen zu können.

  2. Laden Sie CMake herunter und installieren Sie es . CMake ist ein Dienstprogramm, das die Kompilierung ein wenig einfacher macht, und OpenCV 2.4.5. hat die nötigen Dateien, um damit arbeiten zu können.

  3. Laden Sie den zuvor verlinkten Quellcode herunter und extrahieren Sie ihn (falls Sie dies noch nicht getan haben). Wo Sie den Quellcode extrahieren, ist Ihre Wahl.

  4. Wenn CMake installiert ist, öffnen Sie die GUI-Benutzeroberfläche (z. B. über das Symbol auf Ihrem Desktop).

  5. Geben Sie oben im Hauptfenster den Pfad zu Ihrem Quellcode in das erste Feld ein. Fügen Sie im sekundären Feld darunter einen Pfad hinzu, in dem Sie Dateien speichern möchten, die sich auf die Kompilierung beziehen (der Ort dieses zweiten Pfads ist Ihre Wahl). In diesen Schritten verwende ich einen Ordner mit dem Namen build, der sich im selben Verzeichnis wie der Quellcode befindet:

    CMake / OpenCV Build Directory - Screenshot

  6. Wenn Sie diese Pfade eingegeben haben, drücken Sie am unteren Rand des Hauptfensters auf Konfigurieren . Ein neues Dialogfeld sollte angezeigt werden.

  7. Wählen Sie in diesem Dialogfeld den richtigen "Generator" für Ihre DLLs aus. Bei Visual Studio ist dies der Name der Edition, gefolgt von nichts (wobei 32-Bit-Binärdateien erstellt werden) oder Win64(mit 64-Bit-Binärdateien). TITARL ist ein 64-Bit-Programm ( TITARL 1.7 [Win x64 - Public release]). Daher sollten Sie beispielsweise die entsprechenden 64-Bit-DLLs auswählen Visual Studio 14 2015 Win64oder Visual Studio 15 2017 Win64erstellen:

    CMake Generator - Visual Studio 14 2015 Win64 - Screenshot CMake Generator - Visual Studio 15 2017 Win64 - Screenshot

  8. Drücken Sie auf Fertig stellen um das Dialogfeld zu schließen. CMake beginnt automatisch mit der Verarbeitung des Quellcodes von OpenCV 2.4.5. Im Hauptfenster hat sich die Schaltfläche Konfigurieren in eine Schaltfläche Stopp geändert, und die Schaltflächen Generieren ... und Projekt öffnen ... sind ausgegraut. Beachten Sie, dass diese anfängliche Verarbeitung einige Minuten dauern kann.

  9. Sobald diese Verarbeitung abgeschlossen ist, werden im oberen Fenster des CMake-Hauptfensters viele Informationen rot angezeigt (dies sind neu erkannte Optionen). Im unteren Bereich sollte "Konfigurieren abgeschlossen" stehen:

    CMake-Erstverarbeitung abgeschlossen

  10. Suchen Sie nach den markierten Build-Optionen BUILD_opencv_*(wo *ist ein Name wie apps). Sie sollten alle in einem Block sein. Deaktivieren Sie das Kontrollkästchen neben den einzelnen Elementen mit Ausnahme von BUILD_opencv_coreund BUILD_opencv_ml. Drücken Sie Configure erneut. Nach der Bearbeitung wieder beendet, drücken Sie generieren ... . Wenn Sie fertig sind, sollte das Hauptfenster von CMake ungefähr so ​​aussehen:

    CMake - Bereit für Visual Studio Edit-Lösung - Screenshot

Fixieren von OpenCV 2.4.5

Normalerweise wäre zu diesem Zeitpunkt alles zum Kompilieren der fehlenden DLLs bereit. OpenCV 2.4.5. hat ein generisches Problem mit Visual Studio 12+, bei dem eine große Anzahl von "max" : is not a member of "std"Fehlern generiert wird, die die Erstellung der erforderlichen DLL-Dateien verhindern.

Wie in einer Antwort auf diese StackOverflow-Frage ausführlich beschrieben, kann die Kompilierung mit geringfügigen Änderungen am ursprünglichen Quellcode erreicht werden.

So beheben Sie dieses Problem:

  1. Finden Sie die OpenCV.slnzuvor von CMake erzeugte Lösung (zB unter C:\path\to\opencv-2.4.5\build).

  2. Doppelklicken Sie auf die Datei, um sie in Visual Studio zu öffnen. Da dies wahrscheinlich das erste Mal ist, dass Sie diese Lösung geöffnet haben, kann es eine oder zwei Minuten dauern, bis Visual Studio sie vollständig analysiert hat. Sehen Sie sich die blaue Aktivitätsleiste unten im Hauptfenster von Visual Studio an und warten Sie, bis "Fertig" angezeigt wird, bevor Sie fortfahren.

  3. Drücken Sie nach dem Einrichten von Visual Studio Ctrl+ H, um das Dialogfeld Suchen und Ersetzen zu öffnen. Führen Sie dann die folgenden Schritte aus :

    • Unter Find what:eingeben #include \<string\>.
    • Unter Replace with:eingeben #include <algorithm>\n#include <string>.
    • Set Look inzu Entire Solution( je nach Bedarf).
    • Unter Find options, stellen Sie sicher, Use Regular Expressionsgekennzeichnet ist.
    • Drücken Sie auf Alle ersetzen, wenn Sie fertig.

      Dialogfeld zum Ersetzen von Visual Studio-Lösungen - Screenshot

Kompilieren

Wenn alle oben genannten Schritte abgeschlossen sind, sollten Sie mit CMake kompilieren können. Öffnen Sie ein Befehlsfenster in Ihrem buildVerzeichnis ( C:\path\to\opencv-2.4.5\buildz . B.) und geben Sie Folgendes ein:

C:\path\to\cmake.exe --build . --config Release --target INSTALL 

Nach kurzer Zeit (unter 15 Minuten) sollte das Kompilieren abgeschlossen sein und die fehlenden .dlls sollten im install\binOrdner des buildVerzeichnisses verfügbar sein (z C:\path\to\opencv-2.4.5\build\install\bin. B. ). Wie bereits erwähnt, müssen die .dlls in diesem Ordner im selben Ordner abgelegt werden wie TITARL.exe.


Allgemeine Hinweise

  • Nach den oben genannten Schritten sind bei Visual Studio keine größeren Fehler als die erforderliche Code-Korrektur aufgetreten. Ich habe jedoch nicht versucht, die gesamte Bibliothek zu erstellen.

  • Nicht jeder Schritt, der hier dargestellt wird, entspricht genau den Schritten, die in den Leitfadenlinks angegeben sind. Sie können auf diese Links für weitere Details zurückgreifen.

Anmerkungen zu Visual Studio

  • Visual Studio kann eine umfangreiche Installation sein und möglicherweise eine eigene Konfiguration erfordern. Daher kann der Vorbereitungsschritt 1 länger dauern, als Sie vielleicht denken.

  • Wenn Sie planen, mit Python-Unterstützung in OpenCV zu basteln, muss Visual Studio möglicherweise Python Tools for Visual Studiozusammen mit seiner Unterstützung für eingerichtet werden Visual C++.

  • Gelbe Warnmeldungen beim Kompilieren können oft ignoriert werden. Auf der anderen Seite weisen rote Fehlermeldungen auf Probleme hin, die dazu führen, dass ein Build fehlschlägt (dh es werden keine DLL-Dateien erzeugt). Diese sind jedoch nicht identisch mit den potenziell "sicheren" roten Fehlern, die CMake unten generiert.

CMake-Notizen

  • CMake verwendet in seiner GUI-Schnittstelle /keine \Windows-Pfade. Eingefügte Pfade sollten sich jedoch automatisch \umgeschaltet haben /.

  • Wenn Sie cmake.exeim abschließenden Kompilierungsschritt nicht den vollständigen Pfad eingeben möchten, wählen Sie die Option, um CMake während der Installation zu PATH hinzuzufügen.

  • Die Option zum Erstellen von DLLs, die Python in CMake unterstützen, erfordert Schritte, die hier nicht aufgeführt sind.

  • Vorbereitungsschritt 7 kann dazu führen, dass falsche Binärdateien erstellt werden, wenn Sie den falschen Generator auswählen (dh 32-Bit-DLLs funktionieren nicht mit einem 64-Bit-Programm). Die Auswahl der Optionsschaltflächen Use default native compilerssollte jedoch in Ordnung sein.

  • Wenn Sie mit CMake usw. Fehler machen, löschen Sie einfach Ihren buildOrdner und beginnen Sie erneut mit Vorbereitungsschritt 4.

  • In CMake schienen rote "Fehler" in der Benutzeroberfläche bei den angegebenen Schritten keine ernsthaften Probleme zu verursachen. Das heißt, es lohnt sich wahrscheinlich, generell alle Fehler oder Warnungen zu beachten, die Sie treffen.

  • Bei gravierenden Problemen wird die Konfiguration nicht abgeschlossen und ein Fehlerprotokoll wird erstellt.

Wohin soll ich die Dateien extrahieren, nachdem ich sie heruntergeladen habe? Ist das wichtig? Jessica Chambers vor 5 Jahren 0
Entschuldigung. Im weitesten Sinne sollte es keine Rolle spielen - überall, wo Sie der Meinung sind, dass es insgesamt geeignet ist. Ich würde versucht sein, es irgendwo mit meinen anderen Programmen oder Bibliotheken abzulegen (der Extractor für ausführbare Dateien erstellt automatisch einen `opencv`-Ordner). Anaksunaman vor 5 Jahren 0
Das heißt, für Ihr Programm kann es entweder die Option geben, einen Pfad zur Bibliothek anzugeben, oder es muss erforderlich sein, dass die entsprechenden DLL-Dateien in einem (oder mehreren) seiner Programmordner abgelegt werden. Wenn Sie sie manuell platzieren müssen, sind wahrscheinlich der Stammordner oder ein beliebiger `bin`-Ordner Ziele. Das ist jedoch eine Vermutung. Möglicherweise müssen Sie die Dokumentation für Ihr Programm erneut lesen oder weiter recherchieren. Beachten Sie, dass Sie entweder die x32-Version (32-Bit) oder die x64-Version (64-Bit) dieser DLLs verwenden sollten, die auf der "Bitness" des Programms basiert, das Sie ausführen möchten (dh erneut 32-Bit oder 64-Bit) ). Anaksunaman vor 5 Jahren 0
ok Ich habe openCV installiert (folgte diesem Tutorial: https://www.learnopencv.com/install-opencv3-on-windows/) und immer noch kein Glück. Am Ende ging ich durch ein Kaninchenloch mit Installationen wie dlib und MSBuild. Das Dokument enthält auch keine Informationen zu den Anforderungen usw. Jessica Chambers vor 5 Jahren 0
Wenn Sie weiterhin Probleme haben, sollten Sie vielleicht ein paar weitere Details dazu hinzufügen, welche Programme Sie verwenden (wenn möglich) und wie (dh, was möchten Sie damit machen). Anaksunaman vor 5 Jahren 0
Das ist wahrscheinlich die einfachste Lösung, ich bearbeite die Frage, um die Software einzubeziehen Jessica Chambers vor 5 Jahren 0
Ich habe meine Antwort aktualisiert. Wenn Sie die DLLs bereits erstellt haben, legen Sie sie mit `TITARL.exe` in den Hauptordner. Wenn nicht, habe ich einige zur Verfügung gestellt, die für Sie geeignet sind (oder auch nicht). Ich habe auch versucht, den von Ihnen verlinkten Leitfaden in einen für Ihre Situation zutreffenden Fall zu übersetzen (vorausgesetzt, Sie müssen diese .dlls aus irgendeinem Grund selbst erstellen). Anaksunaman vor 5 Jahren 0
Oh mein Gott, vielen Dank! Ich denke, ich muss es selbst kompilieren, da es mit der .bat-Beispieldatei funktioniert, aber TITARL.exe scheint immer noch Probleme zu haben (das Fenster des Terminals wird sofort angezeigt.) Jessica Chambers vor 5 Jahren 0
Herzlich Willkommen =) Das Kompilieren wäre wahrscheinlich am besten. Anaksunaman vor 5 Jahren 0