![](https://products-qa.fileformat.com/it/image/net/emgucv/header-image.png)
Emgu CV
Libreria di elaborazione immagini .NET open source
L'API C# consente agli sviluppatori di software di acquisire immagini da fotocamera o file video, supporto per la trasformazione geometrica e molto altro.
Emgu CV è un wrapper .NET multipiattaforma open source per la libreria di elaborazione delle immagini OpenCV che offre agli sviluppatori di software la possibilità di eseguire la creazione e la manipolazione di immagini semplici e avanzate all'interno delle proprie app .NET. Può essere eseguito senza problemi su Windows, Linux, Mac OS, iOS e Android con facilità.
Emgu CV è un'implementazione C# pura che può essere utilizzata in diversi linguaggi, inclusi C#, VB.NET, C++ e IronPython. La libreria ha incluso diverse importanti funzionalità relative all'elaborazione delle immagini come la generazione di una nuova immagine, la modifica delle immagini, l'acquisizione di immagini da fotocamera o file video, la scrittura di immagini in formato video, la segmentazione dello sfondo, il supporto per la trasformazione geometrica, il supporto per il riconoscimento ottico dei caratteri, l'unione di immagini , e tanti altri.
Iniziare con Emgu CV
Per eseguire il tuo progetto utilizzando Emgu CV, prima di tutto, devi installare il runtime .NET. Successivamente, puoi scaricare manualmente il repository da GitHub. Utilizzare il comando seguente per installarlo.
Installa Emgu CV tramite GitHub
git clone https://github.com/emgucv/emgucv.git
Creazione e gestione dell'immagine tramite .NET
La libreria gratuita Emgu CV consente ai programmatori di software di creare app in grado di creare ed elaborare immagini con facilità. Puoi creare un'immagine con facilità, ma si consiglia di costruire un oggetto immagine. Usando la classe gestita puoi avere diversi vantaggi come la gestione automatica della memoria, la raccolta automatica dei rifiuti e contiene metodi avanzati come operazioni generiche sui pixel dell'immagine, conversione in Bitmap e così via. Puoi facilmente regolare le dimensioni, applicare il colore, specificare la profondità dell'immagine e molto altro
Crea immagine tramite .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");
}
Rilevamento dei segnali stradali tramite .NET API
L'API open source Emgu CV ha incluso il supporto per rilevare facilmente il traffico che canta utilizzando i comandi .NET. La libreria aiuta gli sviluppatori a rilevare i segnali di stop dalle immagini catturate dalle telecamere, che è una parte importante del sistema di navigazione del veicolo autonomo. È molto utile e può aiutare l'automobile a navigare in sicurezza in un ambiente urbano. Nella prima fase, gli sviluppatori devono estrarre gli ottagoni rossi dei segnali stradali e possono utilizzare SURF per abbinare le caratteristiche della regione candidata in modo che corrisponda.
Eseguire la cucitura di immagini tramite CSharp
La libreria Emgu CV aiuta gli sviluppatori a eseguire la cucitura di immagini all'interno delle proprie app utilizzando il codice C#. È un processo molto utile per combinare più immagini fotografiche per generare un panorama segmentato o un'immagine ad alta risoluzione. La libreria richiede solo un paio di righe di codice per eseguirla, ma è importante ricordare che per risultati accurati sono necessarie sovrapposizioni quasi esatte tra immagini ed esposizioni identiche.
Eseguire il passaggio di immagine tramite .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
}