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 programáticamente números de matrículas de imágenes, ahorrando considerables cantidades de tiempo 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.
Para leer una matrícula en IronOCR, debemos aplicar los siguientes pasos:
Utilizamos el método ReadLicensePlate, que toma un OcrInput como parámetro para la entrada. Este método está más optimizado para matrículas precisamente que el homólogo estándar de la biblioteca Read.
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.
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)
$vbLabelText $csharpLabel
Salida
Nota que primero debemos importar la imagen como un OcrInput para pasar el parámetro en el método ReadLicensePlate correctamente.
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.
Texto: El texto extraído del OCR de entrada.
Confianza: Una propiedad "double" que indica la confianza estadística de precisión de un promedio de cada carácter, donde uno es el más alto y 0 es 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.
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)
$vbLabelText $csharpLabel
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.
¿Listo para empezar? Versión: 2025.3 acaba de salir