Emgu CV
Bibliothèque de traitement d'images .NET open source
L'API C# permet aux développeurs de logiciels de capturer des images à partir d'un appareil photo ou d'un fichier vidéo, de prendre en charge la transformation géométrique et bien plus encore.
Emgu CV est un wrapper .NET multiplateforme open source pour la bibliothèque de traitement d'images OpenCV qui donne aux développeurs de logiciels la possibilité d'effectuer une création et une manipulation d'images simples et avancées dans leurs propres applications .NET. Il peut être exécuté facilement sur Windows, Linux, Mac OS, iOS et Android.
Emgu CV est une implémentation C# pure qui peut être utilisée dans plusieurs langages différents, notamment C#, VB.NET, C++ et IronPython. La bibliothèque comprend plusieurs fonctionnalités importantes liées au traitement d'image, telles que la génération d'une nouvelle image, la modification d'images, la capture d'images à partir d'un appareil photo ou d'un fichier vidéo, l'écriture d'images au format vidéo, la segmentation d'arrière-plan, la prise en charge de la transformation géométrique, la prise en charge de la reconnaissance optique des caractères, l'assemblage d'images. , et beaucoup plus.
Premiers pas avec Emgu CV
Pour exécuter votre projet à l'aide d'Emgu CV, vous devez tout d'abord installer le runtime .NET. Après cela, vous pouvez télécharger manuellement le référentiel depuis GitHub. Utilisez la commande suivante pour l'installer.
Installer Emgu CV via GitHub
git clone https://github.com/emgucv/emgucv.git
Création et gestion d'image via .NET
La bibliothèque de CV gratuite Emgu permet aux programmeurs de logiciels de créer des applications capables de créer et de traiter facilement des images. Vous pouvez facilement créer une image, mais il est suggéré de construire un objet image. En utilisant la classe managée, vous pouvez avoir plusieurs avantages tels que la gestion automatique de la mémoire, la collecte automatique des ordures et contient des méthodes avancées telles que l'opération générique sur les pixels de l'image, la conversion en Bitmap, etc. Vous pouvez facilement ajuster la taille, appliquer la couleur, spécifier la profondeur de l'image et bien plus encore
Créer l'image via .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");
}
Détection des panneaux de signalisation via l'API .NET
L'API Emgu CV open source a inclus la prise en charge de la détection du trafic en toute simplicité à l'aide des commandes .NET. La bibliothèque aide les développeurs à détecter les panneaux d'arrêt à partir d'images capturées par des caméras, ce qui est une partie importante du système de navigation de véhicule autonome. Il est très utile et peut aider l'automobile à se diriger en toute sécurité en milieu urbain. Dans la première étape, les développeurs doivent extraire les octogones rouges des feux de circulation et ils peuvent utiliser SURF pour faire correspondre les caractéristiques de la région candidate pour y correspondre.
Effectuer l'assemblage d'images via CSharp
La bibliothèque Emgu CV aide les développeurs à assembler des images dans leurs propres applications à l'aide de code C#. C'est un processus très utile pour combiner plusieurs images photographiques afin de générer un panorama segmenté ou une image haute résolution. La bibliothèque ne nécessite que quelques lignes de code pour l'exécuter, mais il est important de se rappeler que pour des résultats précis, des chevauchements presque exacts entre les images et des expositions identiques sont nécessaires.
Performage de l'image via .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
}