it-swarm-eu.dev

.Net (dotNet) Wrapper für OpenCV?

Ich habe gesehen, dass es einige davon gibt. opencvdotnet , SharperCV , EmguCV , One on Code Project .

Hat jemand irgendwelche Erfahrungen mit diesen? Ich habe ein bisschen mit dem Code Project rumgespielt, aber als ich versuchte, etwas Kompliziertes zu tun, bekam ich ein paar unangenehme unauffindbare Ausnahmen (d. H. Msgbox-Ausnahmen). Cross-Plattform (unterstützt Mono) wäre am besten.

69
Kris Erickson

Ich habe mit opencvdotnet angefangen, aber es ist nicht mehr wirklich aktiv entwickelt. Außerdem war die Unterstützung für die von mir benötigte Funktion (Gesichtserkennung) lückenhaft. Ich verwende jetzt EmguCV : Es umschließt einen weitaus größeren Teil der API und der Typ, der dahinter steht, reagiert sehr gut auf Vorschläge und Anfragen. Der Code ist eine Freude zu betrachten und es ist bekannt, dass er auf Mono funktioniert.

Ich habe eine Kurzanleitung für den Einstieg in meinem Blog geschrieben.

66
friism

Wir verwenden OpenCVSharp Die Google Code-Website ist auf Japanisch, verwendet jedoch die neuesten OpenCV-Builds und implementiert IDisposable. Es scheint mehr Funktionalität zu bieten als alle anderen, die wir bisher gesehen haben und es ist immer noch aktiv. Es hat auch ziemlich umfangreiche Beispielprogramme.

22
tidyup

Ich denke, es ist wichtig anzumerken, dass die ursprüngliche Frage in 2008 gestellt wurde und OpenCV 2.0 in 2009 veröffentlicht wurde. Mit der Version 2.0 wurde ein C++ - Wrapper eingeführt, mit dem die Arbeit erheblich einfacher ist als mit der älteren C-Schnittstelle, mit der das OP konfrontiert war. Für mein .NET-Projekt lasse ich die gesamte grafische Bearbeitung in nativem C++.

Versuchen Sie dies: Erstellen Sie ein C++/CLR DLL) -Projekt, das auf die OpenCV-Bibliotheken verweist. Das OpenCV-Handbuch beschreibt, wie dies für eine Windows C++ EXE-Datei in den gleichen Schritten durchgeführt wird funktionieren auch für eine C++/CLR DLL. Dann exportiert die DLL natürlich Methoden, die von einer .NET EXE aufrufbar sind.

Um dies zu testen, sollten Sie in der Lage sein, jedes der OpenCV-Beispiele mit einigem Aufwand in Ihre DLL zu integrieren. (Fügen Sie die CPP-Datei zu Ihrem Projekt hinzu, konvertieren Sie die main () - Funktion in eine Klassenmitglied usw. - Sie kennen die Übung ...) Ein guter Testkandidat könnte das Beispiel "mat_mask_operations" sein.

17
Paul Williams

OpenCV.NET ist bei NuGet erhältlich

https://bitbucket.org/horizongir/opencv.net

https://www.nuget.org/packages/OpenCV.Net

Hier ist eine Liste der Funktionen der Projektsite:

OpenCV.NET ist eine .NET-Schnittstelle für die beliebte OpenCV-Bildverarbeitungs- und Bildverarbeitungsbibliothek. Diese Bindungen wurden im Laufe eines Jahres entwickelt und enthalten viele Merkmale, die bei anderen Versuchen fehlten, nämlich:

  • Plattformübergreifende Mono-Kompatibilität (nur P/Invoke wird verwendet)
  • Nahezu 100% ige Unterstützung der neuesten C-API (einschließlich undokumentierter Funktionen)
  • Vollständige Dokumentation/Intellisense für alle unterstützten Methoden, Klassen und Enum-Mitglieder (mühsam aus vielen verschiedenen Quellen gewonnen)
  • Unterstützung für Ausnahmen
  • Müllsammler freundlich:
    • GC ist sich des von Matrizen und Bildern tatsächlich verwendeten Speichers bewusst
    • Zeiger überleben garantiert Funktionsaufrufe, auch wenn gleichzeitig Speicherbereinigungen durchgeführt werden
  • Objektmodell folgt so weit wie möglich der C++ API (in Richtung zukünftig verstärkter Unterstützung der C++ API)
  • BSD-Lizenz (MIT)
10
VoteCoffee

Ich habe ein NuGet-Paket erstellt, um den Start mit OpenCv in C # mithilfe von EmguCV zu vereinfachen.

Hör zu! Suchen Sie in Visual Studio und fügen Sie das myEmguCV.Net NuGet-Paket hinzu.

https://www.nuget.org/packages/myEmguCV.Net

2
Tony

Ich denke, der beste Wrapper ist opencvsharp http://code.google.com/p/opencvsharp/

2
mrgloom

Ich weiß, dass diese Frage schon lange beantwortet wurde, aber ich möchte hinzufügen, dass es einen sehr guten Wrapper gibt hier . Dies ist die neue Version des openCV-Wrappers, den Sie anprobiert haben Code-Projekt . Ich habe es ein paar Tage lang versucht und alles funktioniert perfekt. Außerdem habe ich es in wenigen Minuten zum Laufen gebracht.

Ich weiß nicht, ob es mit Mono kompatibel ist, aber unter Visual Studio 2010 funktioniert es wie ein Zauber und hat mir jede Menge Zeit und Geld gespart (mein Projekt ist kommerziell und die meisten Bibliotheken sind Open-Source-Bibliotheken mit Lizenzen, die keine kommerzielle Nutzung zulassen Nutzung ohne Veröffentlichung des Codes)

SharperCV war unser Werkzeug der Wahl und lässt uns bei unserem Robotik-Projekt nicht im Stich. Obwohl der Code derzeit als aufgegeben markiert ist, ist er in einem wirklich guten Zustand. Es sind nur geringfügige Anpassungen erforderlich, um ihn an Ihre Bedürfnisse anzupassen. Keine msgboxes und eigentlich sehr vernünftige Ausnahmebehandlung.

Aufgrund der Interoperabilitätsschicht jedoch nicht plattformübergreifend.

0
Silver Dragon