Ir al contenido

OCR Extract Pattern

Tipo: ocr-extract-pattern  ·  Paquete: OCR Activities v1.2.5  ·  Salida: Dictionary<string, string>

Desde: v1.2.0

Combina OCR + expresiones regulares en un solo paso: reconoce el texto de una imagen y, sobre ese texto, aplica un conjunto de patrones (regex) para extraer campos concretos. Devuelve un diccionario { campo: valor }. Es la forma más directa de sacar datos estructurados de un documento escaneado (número de factura, fecha, total).

Ejecuta OCR sobre la imagen (una sola vez) y, sobre el texto resultante, evalúa cada patrón del diccionario patterns:

  • Toma la primera coincidencia de cada patrón en todo el texto.
  • Si el patrón tiene un grupo de captura (...), el valor es lo que captura el primer grupo; si no, la coincidencia completa.
  • Si el patrón no coincide (o está vacío), el campo queda con texto vacío "".
  • Los patrones distinguen mayúsculas y minúsculas; para ignorarlas, empieza el patrón con (?i).
ParámetroTipoPor defectoDescripción
pathstring—Ruta del archivo de imagen (.png, .jpg, .bmp, .tiff).
patternsDictionary—Diccionario nombreCampo → patrón regex. Usa un grupo de captura para extraer solo el valor. Los valores pueden ser expresiones.
ParámetroTipoPor defectoDescripción
languagestring"eng"Idioma del texto: código de Tesseract (eng, spa, eng+spa) o etiqueta regional (es-CO). Ver idioma.
preprocessstring"none"Limpieza previa: none · auto · deskew · binarize. Ver preprocesado.

Devuelve un Dictionary<string, string> con una clave por cada patrón de patterns (siempre todas) y su valor de texto: el dato encontrado o "" si no hubo coincidencia. Comprueba los campos vacíos antes de usarlos.

Extraer número, fecha y total de una factura escaneada:

OCR Extract Pattern
path = rutaFactura
language = "spa"
preprocess = "auto"
patterns = {
"numero": "FAC-(\d+)",
"fecha": "Fecha:\s*(\d{4}-\d{2}-\d{2})",
"total": "Total:\s*\$?([\d.,]+)"
}
→ output: datos
If condition = isEmpty(datos["total"])
└─ then:
Throw message = "No se pudo leer el total de la factura"
Log message = "Factura " + datos["numero"] + " — Total " + datos["total"]
MensajeCausa y solución
'patterns' es obligatorio.Falta patterns.
'patterns' debe ser un Dictionary<string, string> que asocie nombres de campo con expresiones regulares.patterns no es un objeto { campo: patrón } (por ejemplo, una lista o un texto).
Expresión regular no válida para el campo '…': …El patrón de ese campo tiene un error de sintaxis (paréntesis sin cerrar, \ sin escapar…).
No se encontró el archivo.La ruta de path no existe en la máquina del robot.
No se encontró el idioma de Tesseract '…' en '…'. Disponibles: [eng, spa].El código de language no está instalado.