Cómo leer matrículas en C# con IronOCR
El método ReadLicensePlate de IronOCR extrae automáticamente números de matrícula de imágenes de vehículos utilizando tecnología OCR avanzada. Esta llamada a un único método puede procesar matrículas con gran precisión, devolviendo tanto el texto de la matrícula como la puntuación de confianza para sistemas automatizados de gestión de vehículos.
Al gestionar un gran volumen de imágenes de vehículos, leer matrículas manualmente consume 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 mediante programación los números de matrícula de las imágenes, lo que ahorra un tiempo considerable a la vez que mejora la precisión de los datos.
En esta guía, demostraremos cómo utilizar IronOCR para el reconocimiento de matrículas, a través de ejemplos y configuraciones personalizables que hacen que el proceso sea perfecto. Aprovechando estos métodos, los desarrolladores pueden automatizar la lectura de matrículas, haciendo que tareas como la gestión de estacionamientos, cobro de peajes o vigilancia de seguridad sean más eficientes.
Para usar esta función, también debes instalar el paquete IronOcr.Extension.AdvancedScan.
como-título:2(Inicio rápido: Extraer número de matrícula instantáneamente)
Con una sola llamada al método ReadLicensePlate de IronOCR, puede extraer mediante programación el texto de la matrícula de cualquier imagen. Está listo para usar: basta con cargar una imagen, llamar al método y obtener el número de matrícula y la confianza de inmediato.
Empieza a crear PDF con NuGet ahora:
Instalar IronOCR con el gestor de paquetes NuGet
Copie y ejecute este fragmento de código.
OcrLicensePlateResult result = new IronTesseract().ReadLicensePlate(new OcrInput("plate.jpg"));Despliegue para probar en su entorno real
Empieza a utilizar IronOCR en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Descargue la biblioteca C# para leer matrículas
- Importa la imagen de la matrícula para su procesamiento
- Asegúrate de que el documento contiene solo la imagen de la matrícula, sin cabeceras ni pies de página
- Utilice el método
ReadLicensePlatepara extraer datos de la imagen - Acceda a la propiedad
OcrLicensePlateResultpara ver y manipular los datos de licencia extraídos
¿Cómo leer una matrícula en C#?
Para leer una matrícula en IronOCR, aplicamos los siguientes pasos:
- Utilizamos el método
ReadLicensePlate, que toma unOcrInputcomo parámetro de entrada. Este método está más optimizado para matrículas que el homólogo estándar de la bibliotecaRead. - Opcionalmente, podemos configurar IronOCR para que incluya una lista blanca de caracteres específicos que pueden existir en una matrícula, con el fin de acelerar el procesamiento del número de matrícula.
[{i:(
- Actualmente, el método solo funciona para inglés, chino, japonés, coreano y alfabetos latinos.
- Usar escaneo avanzado en .NET Framework requiere que el proyecto se ejecute en arquitectura x64.
@@--CIERRE DE SOPORTE--@@
¿Cómo es la matrícula de entrada?
Matrícula de California mostrando '8TRS777' - ejemplo de demostración de lectura de matrículas
¿Cómo configuro el OCR para matrículas?
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-read-license-plate.csusing 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)¿Qué resultados puedo esperar?
El código demuestra cómo importar una imagen como un OcrInput y usarlo con el método ReadLicensePlate para extraer el texto de la matrícula. La salida muestra el texto extraído que coincide con la matrícula mostrada en la imagen de entrada, junto con un nivel de confianza que indica la precisión del OCR.
Texto: El texto extraído de la entrada de OCR.
Confianza: Una propiedad doble que indica la confianza de precisión estadística de un promedio de cada carácter, siendo uno el más alto y 0 el más bajo.
Para obtener un control más preciso sobre el proceso de OCR, puedes explorar opciones de configuración avanzadas para afinar los ajustes de reconocimiento de caracteres.
¿Cómo puedo extraer matrículas de imágenes de coches?
El método también funciona bien con imágenes que contienen un coche con matrícula. El código es 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.
¿Qué tipo de imágenes de coches funcionan mejor?
Para obtener resultados óptimos, asegúrese de que las imágenes de su vehículo tengan:
- Visibilidad clara de la matrícula
- Buenas condiciones de iluminación (evitar reflejos o sombras)
- Distorsión angular mínima
- Resolución adecuada (considere la posibilidad de ajustar DPI settings para imágenes de baja resolución)
¿Cómo obtengo las coordenadas de ubicación de la matrícula?
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-read-from-car.csusing 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)¿Qué información incluye el resultado?
El ejemplo muestra cómo se puede aplicar el método ReadLicensePlate a una imagen de un coche. El método también devolverá las coordenadas del rectángulo donde la matrícula está situada en la imagen.
Este método está optimizado para encontrar solo matrículas individuales y es capaz de buscarlas en imágenes de stock.
¿Cómo puedo procesar varias matrículas?
Cuando se trabaja con varias imágenes de vehículos, es posible procesarlas de forma eficaz mediante operaciones por lotes:
using IronOcr;
using System.IO;
using System.Threading.Tasks;
public async Task ProcessMultipleLicensePlates(string[] imagePaths)
{
var ocr = new IronTesseract();
// Configure for optimal performance
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
var tasks = imagePaths.Select(async path =>
{
using var input = new OcrInput();
input.LoadImage(path);
var result = await Task.Run(() => ocr.ReadLicensePlate(input));
return new {
FilePath = path,
PlateNumber = result.Text,
Confidence = result.Confidence
};
});
var results = await Task.WhenAll(tasks);
// Process results
foreach (var result in results)
{
Console.WriteLine($"File: {result.FilePath}");
Console.WriteLine($"Plate: {result.PlateNumber} (Confidence: {result.Confidence:P})");
}
}using IronOcr;
using System.IO;
using System.Threading.Tasks;
public async Task ProcessMultipleLicensePlates(string[] imagePaths)
{
var ocr = new IronTesseract();
// Configure for optimal performance
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
var tasks = imagePaths.Select(async path =>
{
using var input = new OcrInput();
input.LoadImage(path);
var result = await Task.Run(() => ocr.ReadLicensePlate(input));
return new {
FilePath = path,
PlateNumber = result.Text,
Confidence = result.Confidence
};
});
var results = await Task.WhenAll(tasks);
// Process results
foreach (var result in results)
{
Console.WriteLine($"File: {result.FilePath}");
Console.WriteLine($"Plate: {result.PlateNumber} (Confidence: {result.Confidence:P})");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPara el procesamiento a gran escala, considere la implementación de capacidades multihilo para maximizar el rendimiento.
¿Cómo puedo mejorar la precisión del reconocimiento de matrículas?
Para mejorar la precisión de la detección de matrículas, tenga en cuenta estas técnicas de optimización:
Aplicar filtros de preprocesamiento de imágenes
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load and preprocess the image
input.LoadImage("blurry_plate.jpg");
input.Deskew(); // Correct image rotation
input.DeNoise(); // Remove background noise
input.EnhanceResolution(225); // Upscale for better clarity
input.Sharpen(); // Enhance edge definition
var result = ocr.ReadLicensePlate(input);using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load and preprocess the image
input.LoadImage("blurry_plate.jpg");
input.Deskew(); // Correct image rotation
input.DeNoise(); // Remove background noise
input.EnhanceResolution(225); // Upscale for better clarity
input.Sharpen(); // Enhance edge definition
var result = ocr.ReadLicensePlate(input);IRON VB CONVERTER ERROR developers@ironsoftware.comObtenga más información sobre los filtros de imagen y técnicas de corrección de imágenes disponibles para optimizar sus imágenes de entrada.
Manejar diferentes condiciones de iluminación
En el caso de situaciones de iluminación complicadas, aplique las correcciones oportunas:
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("dark_plate.jpg");
input.Contrast(1.5); // Increase contrast
input.Brightness(1.2); // Adjust brightness
input.Binarize(); // Convert to black and white for clarity
var result = ocr.ReadLicensePlate(input);using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("dark_plate.jpg");
input.Contrast(1.5); // Increase contrast
input.Brightness(1.2); // Adjust brightness
input.Binarize(); // Convert to black and white for clarity
var result = ocr.ReadLicensePlate(input);IRON VB CONVERTER ERROR developers@ironsoftware.com¿Cómo controlo el rendimiento del OCR?
Cuando se procesan grandes lotes de matrículas, el seguimiento del progreso ayuda a gestionar los recursos del sistema:
using IronOcr;
var ocr = new IronTesseract();
// Subscribe to progress events
ocr.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
using var input = new OcrInput();
input.LoadImage("large_parking_lot.jpg");
var result = ocr.ReadLicensePlate(input);using IronOcr;
var ocr = new IronTesseract();
// Subscribe to progress events
ocr.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
using var input = new OcrInput();
input.LoadImage("large_parking_lot.jpg");
var result = ocr.ReadLicensePlate(input);IRON VB CONVERTER ERROR developers@ironsoftware.comPara una supervisión detallada del rendimiento, explore las capacidades de seguimiento del progreso en IronOCR.
¿Cómo se compara esto con la lectura de otros documentos?
Las capacidades especializadas de lectura de documentos de IronOCR van más allá de las matrículas. La misma tecnología de visión por ordenador que permite la detección de matrículas puede aplicarse a:
- Lectura de pasaportes para viajes y verificación de identidad
- Procesamiento de cheques MICR para aplicaciones bancarias
- Escaneado general de documentos para proyectos de digitalización
¿Cuáles son los casos de uso más comunes?
El reconocimiento de matrículas con IronOCR permite diversas aplicaciones:
- Gestión de aparcamiento: Automatice el registro de entradas y salidas y el procesamiento de pagos
- Cobro de peaje: agilizar la identificación de vehículos en los peajes
- Vigilancia de seguridad: seguimiento de los movimientos de vehículos en zonas restringidas
- Gestión de flotas: Supervisar los vehículos y la logística de la empresa
- Aplicación de la ley: identificar vehículos de interés rápidamente
Cada caso de uso se beneficia de la alta precisión de IronOCR y de su capacidad para procesar imágenes en tiempo real, lo que lo hace adecuado tanto para el procesamiento por lotes como para aplicaciones en vivo.
Preguntas Frecuentes
¿Cómo puedo leer matrículas a partir de imágenes en C#?
Puede leer matrículas en C# utilizando el método ReadLicensePlate de IronOCR. Simplemente cree una instancia IronTesseract y llame a ReadLicensePlate con un OcrInput que contenga la imagen de su matrícula. El método devuelve un OcrLicensePlateResult con el texto de la matrícula extraído y la puntuación de confianza.
¿Qué paquete necesito instalar para el reconocimiento de matrículas?
Para utilizar la funcionalidad de reconocimiento de matrículas en IronOCR, es necesario instalar tanto el paquete principal IronOCR como el paquete IronOcr.Extension.AdvancedScan de NuGet. La extensión AdvancedScan proporciona el método especializado ReadLicensePlate.
¿Puedo extraer matrículas con una sola línea de código?
Sí, IronOCR permite extraer el texto de la matrícula con una sola línea de código: OcrLicensePlateResult = new IronTesseract().ReadLicensePlate(new OcrInput("plate.jpg")); Esto devuelve tanto el número de matrícula como la puntuación de confianza inmediatamente.
¿Qué idiomas son compatibles con el reconocimiento de matrículas?
El método ReadLicensePlate de IronOCR admite actualmente matrículas con alfabetos inglés, chino, japonés, coreano y latino. El método está optimizado específicamente para estos conjuntos de caracteres.
¿Cómo puedo mejorar la precisión de la lectura de matrículas?
Usted puede mejorar la precisión en IronOCR poniendo en la lista blanca caracteres específicos que aparecen en las matrículas, asegurándose de que la imagen contiene sólo la matrícula sin encabezados ni pies de página, y utilizando imágenes de alta calidad. El método ReadLicensePlate ya está optimizado específicamente para el reconocimiento de matrículas.
¿Cuáles son los requisitos del sistema para el reconocimiento de matrículas en .NET Framework?
Al utilizar las funciones avanzadas de análisis de IronOCR, incluida ReadLicensePlate en .NET Framework, el proyecto debe ejecutarse en arquitectura x64. Este requisito garantiza un rendimiento óptimo de la funcionalidad de reconocimiento de matrículas.
¿Qué información devuelve el reconocimiento de matrículas?
El método ReadLicensePlate de IronOCR devuelve un objeto OcrLicensePlateResult que contiene el texto de la matrícula extraído y una puntuación de confianza. Esto le permite tanto recuperar el número de matrícula como evaluar la fiabilidad del resultado del OCR.






