Cómo leer matrículas utilizando IronOCR
Al gestionar un gran volumen de imágenes de vehículos, leer manualmente las matrículas lleva mucho tiempo y es propenso a errores humanos. Automatizar este proceso con una herramienta como IronOCR proporciona una solución más eficiente y precisa. El método ReadLicensePlate
de IronOCR puede extraer de manera programada los números de las matrículas de las imágenes, ahorrando un tiempo considerable mientras mejora la precisión de los datos.
En esta guía, demostraremos cómo utilizar IronOCR para el reconocimiento de matrículas, recorriendo ejemplos y configuraciones personalizables que hacen que el proceso sea fluido. Al aprovechar estos métodos, los desarrolladores pueden automatizar la lectura de placas de matrícula, haciendo que tareas como la gestión de estacionamiento, la recaudación de peajes o la vigilancia de seguridad sean más eficientes.
Cómo leer matrículas utilizando IronOCR
- Descargar la biblioteca de C# para leer matrículas
- Importar la imagen de la placa para su procesamiento
- Asegúrese de que el documento contenga solo la imagen de la placa de matrícula, sin encabezados ni pies de página.
- Utiliza el
LeerPlacaDeLicencia
método para extraer datos de la imagen - Acceder a laOcrLicensePlateResultpropiedad para ver y manipular los datos de la licencia extraída
Comience a usar IronOCR en su proyecto hoy con una prueba gratuita.
Para usar esta función, también debe instalar el IronOcr.Extension.AdvancedScan paquete.
Leer ejemplo de matrícula
Para leer una matrícula en IronOCR, debemos aplicar los siguientes pasos:
- Utilizamos el método
ReadLicensePlate
, que toma unOcrInput
como parámetro para la entrada. Este método está más optimizado para placas de matrícula precisamente que la versión estándarRead
de la biblioteca. -
Opcional: Podemos configurar IronOCR para permitir solo los caracteres específicos que pueden existir en una placa de matrícula, para acelerar el procesamiento del número de la placa.
Atención
- El método actualmente solo funciona para inglés, chino, japonés, coreano y alfabeto latino.
El uso de la exploración avanzada en .NET Framework requiere que el proyecto se ejecute en arquitectura x64.
Placa de matrícula
Código
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-read-license-plate.cs
using IronOcr;
using System;
var ocr = new IronTesseract();
ocr.Configuration.WhiteListCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
using var inputLicensePlate = new OcrInput();
inputLicensePlate.LoadImage("plate.jpeg");
// Read license plate
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);
// Retrieve license plate number and confidence value
string output = $"{result.Text}\nResult Confidence: {result.Confidence}";
Console.WriteLine(output);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Private ocr = New IronTesseract()
ocr.Configuration.WhiteListCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
Dim inputLicensePlate = New OcrInput()
inputLicensePlate.LoadImage("plate.jpeg")
' Read license plate
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)
' Retrieve license plate number and confidence value
Dim output As String = $"{result.Text}" & vbLf & "Result Confidence: {result.Confidence}"
Console.WriteLine(output)
Salida
Tenga en cuenta que primero debemos importar la imagen como un OcrInput
para pasar el parámetro correctamente en el método ReadLicensePlate
.
Como puede ver en la salida de la consola, el texto extraído coincide con la placa y el estado que se muestran en la imagen de entrada.
El texto extraído del input de OCR.
Confidence: Una propiedad "double" que indica la confianza en la precisión estadística de un promedio de cada carácter, siendo uno el nivel más alto y 0 el más bajo.
Matrícula de una imagen de un coche
El método también funciona bien con imágenes individuales que contienen un coche con una placa de matrícula. El código es exactamente el mismo que el anterior, con la imagen de entrada cambiada. También puedes extraer las coordenadas de píxeles del área donde se encuentra la matrícula en la imagen.
Ejemplo de entrada:
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-read-from-car.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
var ocr = new IronTesseract();
using var inputLicensePlate = new OcrInput();
inputLicensePlate.LoadImage("car_license.jpg");
// Read license plate
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);
// Retrieve license plate coordinates
RectangleF rectangle = result.Licenseplate;
// Write license plate value and coordinates in a string
string output = $"License Plate Number:\n{result.Text}\n\n"
+ $"License Plate Area_\n"
+ $"Starting X: {rectangle.X}\n"
+ $"Starting Y: {rectangle.Y}\n"
+ $"Width: {rectangle.Width}\n"
+ $"Height: {rectangle.Height}";
Console.WriteLine(output);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Private ocr = New IronTesseract()
Private inputLicensePlate = New OcrInput()
inputLicensePlate.LoadImage("car_license.jpg")
' Read license plate
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)
' Retrieve license plate coordinates
Dim rectangle As RectangleF = result.Licenseplate
' Write license plate value and coordinates in a string
Dim output As String = $"License Plate Number:" & vbLf & "{result.Text}" & vbLf & vbLf & $"License Plate Area_" & vbLf & $"Starting X: {rectangle.X}" & vbLf & $"Starting Y: {rectangle.Y}" & vbLf & $"Width: {rectangle.Width}" & vbLf & $"Height: {rectangle.Height}"
Console.WriteLine(output)
Salida
Como puede ver, la salida coincide con la matrícula mostrada arriba y el área rectangular exacta de la matrícula en la imagen también se extrae correctamente.
Este método está optimizado para encontrar solo matrículas individuales y es capaz de buscarlas en imágenes de archivo.