Emgu CV
Open-Source-.NET-Bildverarbeitungsbibliothek
Die C#-API ermöglicht es Softwareentwicklern, Bilder entweder von einer Kamera oder einer Videodatei aufzunehmen, geometrische Transformationen zu unterstützen und vieles mehr.
Emgu CV ist ein plattformübergreifender Open-Source-.NET-Wrapper für die OpenCV-Bildverarbeitungsbibliothek, der Softwareentwicklern die Möglichkeit gibt, einfache und erweiterte Bilderstellung und -bearbeitung in ihren eigenen .NET-Apps durchzuführen. Es kann problemlos unter Windows, Linux, Mac OS, iOS und Android ausgeführt werden.
Emgu CV ist eine reine C#-Implementierung, die in mehreren verschiedenen Sprachen verwendet werden kann, darunter C#, VB.NET, C++ und IronPython. Die Bibliothek enthält mehrere wichtige Funktionen im Zusammenhang mit der Bildverarbeitung, z. B. das Erstellen eines neuen Bildes, das Ändern von Bildern, das Erfassen von Bildern von einer Kamera oder einer Videodatei, das Schreiben von Bildern in das Videoformat, die Hintergrundsegmentierung, die Unterstützung geometrischer Transformationen, die Unterstützung der optischen Zeichenerkennung und das Zusammenfügen von Bildern , und viele mehr.
Erste Schritte mit Emgu CV
Um Ihr Projekt mit Emgu CV auszuführen, müssen Sie zunächst die .NET-Laufzeitumgebung installieren. Danach können Sie das Repository manuell von GitHub herunterladen. Verwenden Sie den folgenden Befehl, um es zu installieren.
Installieren Sie Emgu CV über GitHub
git clone https://github.com/emgucv/emgucv.git
Image über .NET erstellen und verwalten
Die kostenlose Emgu-CV-Bibliothek ermöglicht Softwareprogrammierern, Apps zu erstellen, die Bilder einfach erstellen und verarbeiten können. Sie können ganz einfach ein Bild erstellen, aber es wird empfohlen, ein Bildobjekt zu erstellen. Mit der verwalteten Klasse können Sie mehrere Vorteile haben, wie z. B. automatische Speicherverwaltung, automatische Garbage Collection, und enthält erweiterte Methoden wie generische Operationen für Bildpixel, Konvertierung in Bitmap usw. Sie können ganz einfach die Größe anpassen, Farbe anwenden, Bildtiefe festlegen und vieles mehr
Bild erzeugen über .NET
//Create an image of 400x200 of Blue color
using (Image img = new Image(400, 200, new Bgr(255, 0, 0)))
{
//Create the font
MCvFont f = new MCvFont(CvEnum.FONT.CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0);
//Draw "Hello, world." on the image using the specific font
img.Draw("Hello, world", ref f, new Point(10, 80), new Bgr(0, 255, 0));
//Show the image using ImageViewer from Emgu.CV.UI
ImageViewer.Show(img, "Test Window");
}
Verkehrszeichenerkennung über .NET API
Die Open-Source-Emgu-CV-API bietet Unterstützung für die einfache Erkennung von Verkehrssignalen mithilfe von .NET-Befehlen. Die Bibliothek hilft Entwicklern, Stoppschilder aus Bildern zu erkennen, die von Kameras aufgenommen wurden, was ein wichtiger Bestandteil des autonomen Fahrzeugnavigationssystems ist. Es ist sehr nützlich und kann dem Auto helfen, sich sicher in einer städtischen Umgebung zurechtzufinden. Im ersten Schritt müssen Entwickler rote Achtecke der Ampeln extrahieren und sie können SURF verwenden, um Merkmale auf der Kandidatenregion abzugleichen.
Führen Sie das Zusammenfügen von Bildern über CSharp durch
Die Emgu-CV-Bibliothek hilft Entwicklern beim Zusammenfügen von Bildern in ihren eigenen Apps mithilfe von C#-Code. Es ist ein sehr nützliches Verfahren zum Kombinieren mehrerer fotografischer Bilder, um ein segmentiertes Panorama oder ein hochauflösendes Bild zu erzeugen. Die Bibliothek erfordert nur ein paar Codezeilen, um sie auszuführen, aber es ist wichtig, daran zu denken, dass für genaue Ergebnisse nahezu exakte Überlappungen zwischen Bildern und identischen Belichtungen erforderlich sind.
Führen Sie Image Switching über .NET
using (Stitcher stitcher = new Stitcher(
//This indicate if the Stitcher should use GPU for processing.
//There is currently a bug in Open CV such that GPU processing cannot produce the correct result.
//Must specify false as parameter. Hope this will be fixed soon to enable GPU processing
false
))
{
Image result = stitcher.Stitch(sourceImages);
// code to display or save the result
}