USO DE IRONOCR

Cómo hacer OCR de matrículas en C# (Tutorial)

Actualizado 12 de noviembre, 2024
Compartir:

Introducción

El reconocimiento de matrículas se ha convertido en una herramienta esencial en muchas industrias, desde la gestión del tráfico y los sistemas de estacionamiento hasta la aplicación de la ley y las soluciones de peaje. AprovechandoReconocimiento óptico de caracteres (OCR)tecnología, los desarrolladores pueden extraer texto de imágenes de manera eficiente, automatizando el proceso de identificación de matrículas. En este tutorial, demostraremos cómo usarIronOCRuna potente biblioteca OCR de C#, para leer con precisión las matrículas de las imágenes. Con su integración perfecta con el código fuente de OpenCV para tareas de visión por computadora, IronOCR ofrece una solución robusta para reconocer texto incluso desde fuentes de imágenes complejas o ruidosas. Ya sea que estés trabajando con una imagen nítida de una placa de matrícula o una foto completa de un vehículo, esta guía te llevará a través de los pasos para construir un sistema confiable de reconocimiento de placas de matrícula utilizando técnicas modernas de OCR.

Cómo utilizar el reconocimiento de matrículas en C

1.Instala la biblioteca C# para utilizar el reconocimiento de matrículas.

  1. Importa la imagen de la placa a una nueva instancia de OcrImageInput

  2. Aplicar filtros de imagen para mejorar la extracción de texto en C#

  3. Mejore la velocidad de reconocimiento especificando la región de la matrícula en la foto.

  4. Imprime el texto extraído usando una instancia de OcrLicensePlateResult

Primeros pasos con IronOCR

IronOCR es una biblioteca OCR de C# construida sobre el motor OCR Tesseract, específicamente diseñada para aportar alta precisión y eficiencia a proyectos de reconocimiento de texto en aplicaciones .NET. Ideal para manejar imágenes ruidosas o de baja calidad, IronOCR incluye potentes capacidades de preprocesamiento de imágenes como reducción automática de ruido y conversión a escala de grises, que mejoran la claridad de la extracción de texto.

Algunas de las características destacadas de IronOCR incluyen:

  • Alta precisión de OCR: Optimizado para varios idiomas y fuentes, IronOCR sobresale en precisión incluso al trabajar con texto complejo o distorsionado.
  • Compatibilidad con imágenes y PDF: Puede leer texto de múltiples formatos de imagen y archivos PDF, lo que lo hace versátil para diferentes tipos de documentos.
  • Integración con OpenCV: A través del soporte de OpenCV, IronOCR puede realizar tareas de visión por computadora como detectar regiones de texto específicas dentro de una imagen, lo cual es particularmente útil para el reconocimiento de matrículas.
  • Procesamiento avanzado: Incluye filtros para la conversión a escala de grises, rotación, corrección de inclinación y mejora del contraste para mejorar la calidad del reconocimiento.
  • Opciones de entrada flexibles: Admite documentos de varias páginas y regiones ajustables, permitiendo a los desarrolladores centrar el procesamiento de OCR en áreas seleccionadas para obtener resultados más rápidos y específicos.

    Con estas capacidades, IronOCR es una solución poderosa para desarrollar aplicaciones OCR que requieren precisión, flexibilidad y facilidad de integración con otras herramientas de visión por computadora.

Crear un proyecto de Visual Studio

Comience abriendo Visual Studio y seleccionando "Crear un nuevo proyecto". Esto te llevará a una página donde puedes seleccionar el tipo de proyecto que deseas construir.(en nuestro caso, vamos a crear una aplicación de consola). Seleccione el tipo de aplicación deseado y haga clic en "Siguiente".

License Plate Ocr Csharp Tutorial 1 related to Crear un proyecto de Visual Studio

Ahora, dale un nombre a tu proyecto y elige la ubicación donde se guardará.

License Plate Ocr Csharp Tutorial 2 related to Crear un proyecto de Visual Studio

Finalmente, seleccione su marco .NET de destino y haga clic en el botón "Crear". Esto creará el proyecto, como se muestra a continuación.

License Plate Ocr Csharp Tutorial 3 related to Crear un proyecto de Visual Studio

El siguiente paso es instalar la biblioteca IronOCR para que podamos comenzar a procesar matrículas.

Instalación de IronOCR

Para comenzar con IronOCR en su proyecto C#, necesitará instalar el paquete IronOCR desde NuGet. IronOCR es compatible con .NET Framework y .NET Core, lo que facilita su integración en diversas aplicaciones .NET.

Paso 1: Abre la Consola del Administrador de Paquetes

En Visual Studio, vaya a Herramientas > Administrador de paquetes NuGet > Consola del administrador de paquetes.

Paso 2: Instalar el paquete IronOCR

Ingrese el siguiente comando en la Consola del Administrador de Paquetes:

Install-Package IronOcr
Install-Package IronOcr
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr
VB   C#

Este comando instala la biblioteca IronOCR, incluyendo todas las dependencias necesarias para ejecutar funciones de OCR en tu proyecto. Como nuestra aplicación requiere funciones avanzadas como la detección de matrículas utilizando visión por computadora, también puede instalar el paquete opcional IronOcr.ComputerVision.Windows de esta manera:

Install-Package IronOcr.ComputerVision.Windows
Install-Package IronOcr.ComputerVision.Windows
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr.ComputerVision.Windows
VB   C#

Y asegúrese de tener el IronOcr.Extensions.AdvancedScanextensión instalada para que puedas utilizar su poderoso método ReadLicensePlate:

Install-Package IronOcr.Extensions.AdvancedScan
Install-Package IronOcr.Extensions.AdvancedScan
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr.Extensions.AdvancedScan
VB   C#

Alternativamente, puedes instalar los paquetes utilizando Herramientas > Administrador de paquetes NuGet > Administrar paquetes NuGet para la solución y buscar los paquetes que necesitas:

License Plate Ocr Csharp Tutorial 4 related to Paso 2: Instalar el paquete IronOCR

Configuración del Código

Finalmente, debemos agregar las importaciones necesarias y las declaraciones de using al principio de nuestro código:

using IronOcr;
using IronOcr;
Imports IronOcr
VB   C#

Lectura de matrículas con reconocimiento óptico de caracteres

En esta sección, crearemos un programa para leer matrículas utilizando IronOCR, un motor OCR de Tesseract que sobresale en extraer texto de imágenes. Para implementar la detección de vehículos, también podemos incorporar bibliotecas adicionales de aprendizaje automático. Notablemente, IronOCR se integra con OpenCV, una biblioteca líder de visión por computadora de código abierto, lo que nos permite realizar tareas de detección de objetos como la identificación de vehículos y matrículas.

Imagen de ejemplo de matrícula

Trabajaremos con la siguiente matrícula:

License Plate Ocr Csharp Tutorial 5 related to Imagen de ejemplo de matrícula

A continuación, añade el siguiente código para realizar OCR en la matrícula:

using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrImageInput("licensePlate.jpeg"))
{
    // Fixing the digital noise and making the image easier to read
    input.DeNoise();
    input.ToGrayScale();

    // Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

    // Saving the license plate text to a string variable
    string output = result.Text;

    // Outputting the license plate text to the console
    Console.WriteLine(output);
}
using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrImageInput("licensePlate.jpeg"))
{
    // Fixing the digital noise and making the image easier to read
    input.DeNoise();
    input.ToGrayScale();

    // Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

    // Saving the license plate text to a string variable
    string output = result.Text;

    // Outputting the license plate text to the console
    Console.WriteLine(output);
}
Imports IronOcr

Private ocr = New IronTesseract()

Using input = New OcrImageInput("licensePlate.jpeg")
	' Fixing the digital noise and making the image easier to read
	input.DeNoise()
	input.ToGrayScale()

	' Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)

	' Saving the license plate text to a string variable
	Dim output As String = result.Text

	' Outputting the license plate text to the console
	Console.WriteLine(output)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 6 related to Cómo hacer OCR de matrículas en C# (Tutorial)

Desglose del código:

  • Inicialización: La línea var ocr = new IronTesseract(); crea una nueva instancia de la IronTesseractclase, que proporciona métodos para el reconocimiento óptico de caracteres(OCR).
  • Entradas de Imagen: La instrucción using crea un nuevoOcrImageInputobjeto con el archivo de imagen especificado "licensePlate.jpeg". Este objeto está diseñado para contener los datos de la imagen para el procesamiento OCR.
  • Procesamiento de imágenes:

    • input.DeNoise();aplica un filtro de reducción de ruido digital para mejorar la calidad de la imagen, facilitando que el motor OCR lea el texto.
  • input.ToGrayScale();convierte la imagen a escala de grises, lo que puede mejorar la precisión del reconocimiento y la velocidad de procesamiento.
  • Reconocimiento de Matrículas: La línea OcrLicensePlateResult result = ocr.ReadLicensePlate(entrada); utiliza el método ReadLicensePlate para analizar la imagen procesada y extraer cualquier información de la placa de matrícula que detecte, almacenando los resultados en unOcrLicensePlateResult objeto.
  • Almacenamiento de Salida: El texto de la placa se almacena en la variable de cadena de salida accediendo a result.Text, que contiene el texto reconocido de la placa.
  • Salida de consola: Finalmente, Console.WriteLine(salida); imprime el texto de la matrícula extraída en la consola para su verificación.

Escanear matrículas desde un coche

Si tenemos una imagen de todo un coche en lugar de solo la matrícula, podemos especificar una región rectangular para centrarnos en el área de la matrícula. Podemos usarSystem.Drawing.Rectangledefinir esta área en píxeles.

Imagen original

Usaremos el siguiente archivo de imagen para nuestro ejemplo:

License Plate Ocr Csharp Tutorial 7 related to Imagen original

Al especificar el área de interés, mejoramos la velocidad de procesamiento y evitamos extraer texto innecesario.

Código de Implementación

using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
    input.LoadImage("CarPlate.jpeg", contentArea);
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
    input.LoadImage("CarPlate.jpeg", contentArea);
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System.Drawing

Private ocr = New IronTesseract()

Using input = New OcrInput()
	Dim contentArea = New Rectangle(x:= 252, y:= 282, width:= 148, height:= 47)
	input.LoadImage("CarPlate.jpeg", contentArea)
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 8 related to Código de Implementación

Desglose de Código:

  • Inicialización: var ocr = new IronTesseract(); crea una nueva instancia de la clase IronTesseract, que es responsable de ejecutar las operaciones OCR.
  • OCR Input: El uso(var input = new OcrInput())La declaración crea un nuevo objeto OcrInput, que se utilizará para cargar y procesar la imagen para el OCR.
  • Definir el área de interés: var contentArea = new Rectangle(x: 252, y: 282, ancho: 148, altura: 47); define un área rectangular(contentArea)dentro de la imagen. Este rectángulo especifica las coordenadas y dimensiones(anchura y altura)donde se espera que esté ubicada la matrícula.
  • Cargando la imagen: input.LoadImage("CarPlate.jpeg", áreaDeContenido); carga el archivo de imagen especificado("CarPlate.jpeg")y se centra en el rectángulo definido(contentArea)para limitar el procesamiento de OCR a esa región específica.
  • Leyendo la matrícula: OcrLicensePlateResult resultado = ocr.ReadLicensePlate(entrada); invoca el método ReadLicensePlate, que analiza la imagen de entrada en busca de caracteres de la placa de matrícula y devuelve un objeto OcrLicensePlateResult que contiene el texto extraído.
  • Salida: Console.WriteLine(result.Text); imprime el texto reconocido de la matrícula en la consola.

Reconocimiento automático de matrículas

IronOCR utiliza OpenCV para identificar regiones de texto dentro de imágenes, empleando diversas técnicas de procesamiento de imágenes. Esta funcionalidad permite al programa detectar matrículas localizando áreas de texto en la imagen y luego utilizando Tesseract para leer esas regiones.

Instalación

Para habilitar el modelo de detección de matrículas, instale el paquete requerido a través de la Consola del Administrador de Paquetes:

var ocr = new IronTesseract();

using (var input = new OcrImageInput("CarPlate.jpeg"))
{
    input.FindTextRegion();
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();

using (var input = new OcrImageInput("CarPlate.jpeg"))
{
    input.FindTextRegion();
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()

Using input = New OcrImageInput("CarPlate.jpeg")
	input.FindTextRegion()
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 9 related to Instalación

Desglose de Código:

  • Inicialización: Se crea una instancia de la clase IronTesseract, que se utilizará para el reconocimiento óptico de caracteres.(OCR)con el motor Tesseract.
  • Entrada de imagen: Se instancia un nuevo objeto OcrImageInput con el archivo de imagen especificado.("CarPlate.jpeg"). Este objeto servirá como entrada para el proceso de OCR y está encerrado en una declaración using para garantizar una gestión adecuada de los recursos.
  • Detección de Región de Texto: El BuscarRegiónDeTextose llama al método en el objeto de entrada. Este método emplea técnicas de visión por computadora para identificar automáticamente áreas dentro de la imagen que probablemente contengan texto, específicamente apuntando a la placa de matrícula.
  • Reconocimiento de matrículas: Se invoca el método ReadLicensePlate para analizar las regiones de texto detectadas y extraer el número de matrícula. El resultado se almacena en un objeto OcrLicensePlateResult, que contiene el texto reconocido y cualquier metadato asociado.
  • Salida: El texto de la placa detectada se imprime en la consola, permitiendo al usuario ver el número de la placa extraído.

Licencia de IronOCR

License Plate Ocr Csharp Tutorial 10 related to Licencia de IronOCR

Para aquellos que quieran probar IronOCR por sí mismos, IronOCR ofrece unprueba gratuitalo que le otorga acceso a toda la gama de herramientas que tiene para ofrecer, lo que significa que puede probarlas en sus propios proyectos antes de comprar una licencia. Una vez que su prueba gratuita termine,Licenciamiento de IronOCRcomienza desde solo $749 para la licencia Lite. También ofrece complementos opcionales por un costo adicional, como la cobertura de redistribución libre de regalías y soporte ininterrumpido junto con actualizaciones continuas del producto.

Más allá de esto, si te encuentras necesitando usar más productos de IronSoftware además de solo IronOCR, como IronPDF para tus tareas relacionadas con PDF o IronWord para trabajar con documentos de Word, entonces IronSoftware también ofreceIronSuite, que es una excelente manera de tener acceso a toda la gama de herramientas a un gran precio.

Conclusión

En esta guía, hemos explorado cómo construir un sistema confiable de reconocimiento de matrículas en C# usando IronOCR. Con sus potentes capacidades de extracción de texto e integración con OpenCV, IronOCR proporciona una solución eficiente y fácil de usar para aplicaciones que requieren un reconocimiento de texto preciso a partir de imágenes de vehículos. Desde el preprocesamiento de la imagen hasta la configuración de regiones de detección específicas, IronOCR simplifica el proceso de OCR con herramientas diseñadas para imágenes ruidosas o complejas, como las matrículas en el tráfico y los vídeos de vigilancia.

Ya sea que esté desarrollando para el monitoreo de tráfico, la aplicación de estacionamiento o cualquier aplicación que requiera reconocimiento automático de matrículas, IronOCR ofrece una biblioteca completa que se integra perfectamente en entornos .NET. Al seguir estos pasos, estarás preparado para implementar soluciones impulsadas por OCR que mejoran la eficiencia y precisión en diversos escenarios del mundo real. Con características adicionales como la selección de región y reducción de ruido, IronOCR garantiza que tus tareas de reconocimiento de matrículas estén optimizadas para obtener los mejores resultados posibles.

< ANTERIOR
Cómo OCR Licencia de Conducir en C#
SIGUIENTE >
Cómo obtener texto de una factura en C# Tutorial

¿Listo para empezar? Versión: 2024.11 acaba de salir

Descarga gratuita de NuGet Descargas totales: 2,698,613 Ver licencias >