![](https://products-qa.fileformat.com/bg/image/net/emgucv/header-image.png)
Emgu CV
Библиотека за обработка на изображения .NET с отворен код
C# API позволява на разработчиците на софтуер да заснемат изображения от камера или видео файл, поддръжка на геометрична трансформация и много повече.
Emgu CV е .NET обвивка за различни платформи с отворен код към библиотеката за обработка на изображения OpenCV, която дава възможност на разработчиците на софтуер да извършват просто и разширено създаване и манипулиране на изображения в техните собствени .NET приложения. Може да работи гладко на Windows, Linux, Mac OS, iOS и Android с лекота.
Emgu CV е чиста реализация на C#, която може да се използва на няколко различни езика, включително C#, VB.NET, C++ и IronPython. Библиотеката включва няколко важни функции, свързани с обработката на изображения, като например генериране на ново изображение, модифициране на изображения, заснемане на изображения от камера или видео файл, запис на изображения във видео формат, сегментиране на фона, поддръжка на геометрична трансформация, поддръжка на оптично разпознаване на символи, съединяване на изображения , и много други.
Първи стъпки с Emgu CV
За да стартирате проекта си с помощта на Emgu CV, първо трябва да инсталирате .NET runtime. След това можете ръчно да изтеглите хранилището от GitHub. Използвайте следната команда, за да го инсталирате.
Инсталирайте Emgu CV чрез GitHub
git clone https://github.com/emgucv/emgucv.git
Създаване и управление на изображение чрез .NET
Безплатната библиотека Emgu CV позволява на софтуерните програмисти да създават приложения, които могат да създават и обработват изображения с лекота. Можете да създадете изображение с лекота, но е препоръчително да създадете обект на изображение. С помощта на управлявания клас можете да имате няколко предимства като автоматично управление на паметта, автоматично събиране на боклук и съдържа разширени методи като обща операция върху пиксели на изображението, преобразуване в Bitmap и т.н. Можете лесно да регулирате размера, да приложите цвят, да зададете дълбочина на изображението и много други
Създайте изображение чрез .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");
}
Откриване на пътни знаци чрез .NET API
API с отворен код Emgu CV включва поддръжка за лесно откриване на трафик с помощта на .NET команди. Библиотеката помага на разработчиците да откриват знаци за спиране от изображения, заснети от камери, което е важна част от навигационната система за автономни превозни средства. Той е много полезен и може да помогне на автомобила да се движи безопасно в градска среда. В първата стъпка разработчиците трябва да извлекат червени осмоъгълници на пътните сигнали и те могат да използват SURF, за да съпоставят характеристиките на кандидатския регион, за да го съпоставят.
Извършете зашиване на изображения чрез CSharp
Библиотеката Emgu CV помага на разработчиците да извършват съчетаване на изображения в собствените си приложения, използвайки C# код. Това е много полезен процес за комбиниране на множество фотографски изображения за генериране на сегментирана панорама или изображение с висока разделителна способност. Библиотеката изисква само няколко реда код, за да го изпълни, но е важно да запомните, че за точни резултати са необходими почти точни припокривания между изображения и идентични експозиции.
Извършване на зашиване на изображения чрез .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
}