![](https://products-qa.fileformat.com/nl/image/net/emgucv/header-image.png)
Emgu CV
Open Source .NET-beeldverwerkingsbibliotheek
C# API stelt softwareontwikkelaars in staat om afbeeldingen van camera- of videobestanden vast te leggen, ondersteuning voor geometrische transformatie en nog veel meer.
Emgu CV is een open source platformonafhankelijke .NET-wrapper voor de OpenCV-beeldverwerkingsbibliotheek die softwareontwikkelaars de mogelijkheid biedt om eenvoudige en geavanceerde afbeeldingen te maken en te manipuleren binnen hun eigen .NET-apps. Het kan probleemloos worden uitgevoerd op Windows, Linux, Mac OS, iOS en Android.
Emgu CV is een pure C#-implementatie die in verschillende talen kan worden gebruikt, waaronder C#, VB.NET, C++ en IronPython. De bibliotheek heeft verschillende belangrijke functies met betrekking tot beeldverwerking opgenomen, zoals het genereren van een nieuwe afbeelding, het wijzigen van afbeeldingen, het vastleggen van afbeeldingen van een camera of een videobestand, het schrijven van afbeeldingen naar videoformaat, achtergrondsegmentatie, ondersteuning voor geometrische transformatie, ondersteuning voor optische tekenherkenning, beeldsteken , en nog veel meer.
Aan de slag met Emgu CV
Om uw project met Emgu CV uit te voeren, moet u allereerst .NET runtime installeren. Daarna kunt u de repository handmatig downloaden van GitHub. Gebruik de volgende opdracht om het te installeren.
Installeer Emgu CV via GitHub
git clone https://github.com/emgucv/emgucv.git
Afbeelding maken en beheren via .NET
Met de gratis Emgu CV-bibliotheek kunnen softwareprogrammeurs apps maken die gemakkelijk afbeeldingen kunnen maken en verwerken. U kunt gemakkelijk een afbeelding maken, maar het wordt aanbevolen om een afbeeldingsobject te maken. Met behulp van de beheerde klasse kunt u verschillende voordelen hebben, zoals automatisch geheugenbeheer, automatische garbagecollection en bevat geavanceerde methoden zoals generieke bewerking op beeldpixels, conversie naar Bitmap, enzovoort. U kunt eenvoudig de grootte aanpassen, kleur toepassen, afbeeldingsdiepte opgeven en nog veel meer
Maak een afbeelding 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");
}
Detectie van verkeersborden via .NET API
De open source Emgu CV API biedt ondersteuning voor het gemakkelijk detecteren van verkeer met behulp van .NET-commando's. De bibliotheek helpt ontwikkelaars om stopborden te detecteren van beelden die zijn vastgelegd door camera's, wat een belangrijk onderdeel is van het autonome voertuignavigatiesysteem. Het is erg handig en kan de auto helpen zichzelf veilig te navigeren in een stedelijke omgeving. In de eerste stap moeten ontwikkelaars rode achthoeken van de verkeerslichten extraheren en kunnen ze SURF gebruiken om kenmerken op de kandidaat-regio te matchen.
Afbeelding samenvoegen via CSharp
De Emgu CV-bibliotheek helpt ontwikkelaars bij het samenvoegen van afbeeldingen in hun eigen apps met behulp van C#-code. Het is een zeer nuttig proces voor het combineren van meerdere fotografische afbeeldingen om een gesegmenteerd panorama of afbeelding met hoge resolutie te genereren. De bibliotheek heeft slechts een paar regels code nodig om het uit te voeren, maar het is belangrijk om te onthouden dat voor nauwkeurige resultaten bijna exacte overlappingen tussen afbeeldingen en identieke belichtingen vereist zijn.
Voer Image Stitching uit 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
}