Emgu CV
Biblioteca de procesamiento de imágenes .NET de código abierto
La API de C# permite a los desarrolladores de software capturar imágenes desde una cámara o un archivo de video, soporte de transformación geométrica y mucho más.
Emgu CV es un envoltorio .NET multiplataforma de código abierto para la biblioteca de procesamiento de imágenes OpenCV que brinda a los desarrolladores de software la capacidad de realizar la creación y manipulación de imágenes simples y avanzadas dentro de sus propias aplicaciones .NET. Se puede ejecutar sin problemas en Windows, Linux, Mac OS, iOS y Android con facilidad.
Emgu CV es una implementación pura de C# que se puede usar en varios lenguajes diferentes, incluidos C#, VB.NET, C++ e IronPython. La biblioteca ha incluido varias funciones importantes relacionadas con el procesamiento de imágenes, como la generación de una nueva imagen, la modificación de imágenes, la captura de imágenes de una cámara o un archivo de video, la escritura de imágenes en formato de video, la segmentación de fondo, la compatibilidad con la transformación geométrica, la compatibilidad con el reconocimiento óptico de caracteres, la unión de imágenes. , y muchos más.
Primeros pasos con Emgu CV
Para ejecutar su proyecto usando Emgu CV, antes que nada, necesita instalar .NET runtime. Después de eso, puede descargar manualmente el repositorio desde GitHub. Use el siguiente comando para instalarlo.
Instale Emgu CV a través de GitHub
git clone https://github.com/emgucv/emgucv.git
Creación y gestión de imágenes a través de .NET
La biblioteca gratuita de CV de Emgu permite a los programadores de software crear aplicaciones que pueden crear y procesar imágenes con facilidad. Puede crear una imagen con facilidad, pero se sugiere construir un objeto de imagen. Al usar la clase administrada, puede tener varias ventajas, como la administración automática de memoria, la recolección automática de basura y contiene métodos avanzados, como la operación genérica en píxeles de imagen, la conversión a mapa de bits, etc. Puede ajustar fácilmente el tamaño, aplicar color, especificar la profundidad de la imagen y mucho más
Crear imagen a través de .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");
}
Detección de señales de tráfico a través de la API de .NET
La API CV de Emgu de código abierto ha incluido soporte para detectar tráfico cantando con facilidad usando comandos .NET. La biblioteca ayuda a los desarrolladores a detectar señales de alto a partir de imágenes capturadas por cámaras, lo cual es una parte importante del sistema de navegación de vehículos autónomos. Es muy útil y puede ayudar al automóvil a circular con seguridad en un entorno urbano. En el primer paso, los desarrolladores deben extraer octágonos rojos de las señales de tráfico y pueden usar SURF para hacer coincidir las características en la región candidata para que coincida.
Realice la unión de imágenes a través de CSharp
La biblioteca de CV de Emgu ayuda a los desarrolladores a unir imágenes dentro de sus propias aplicaciones usando código C#. Es un proceso muy útil para combinar múltiples imágenes fotográficas para generar un panorama segmentado o una imagen de alta resolución. La biblioteca solo requiere un par de líneas de código para ejecutarla, pero es importante recordar que para obtener resultados precisos, se requieren superposiciones casi exactas entre las imágenes y exposiciones idénticas.
Realizar el intercambio de imágenes a través de .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
}