Ir al contenido

OCR Extract Form Fields

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

Desde: v1.2.0

Extrae texto de regiones rectangulares nombradas de una imagen. Defines, por cada campo, la zona (caja x, y, w, h) donde está su valor, y la actividad hace OCR solo en esa zona. Ideal para formularios de formato fijo (siempre la misma plantilla), donde cada dato está siempre en el mismo lugar.

Por cada campo del diccionario fields, recorta la región indicada de la imagen, le aplica el preprocesado y el OCR, y guarda el texto (sin espacios ni saltos de línea al inicio y al final) bajo ese nombre.

  • Las coordenadas son píxeles de la imagen, con origen en su esquina superior izquierda. Una región que se sale de la imagen se recorta a sus bordes.
  • Cada campo es un reconocimiento aparte: con muchos campos, la actividad tarda proporcionalmente más.
  • Como las coordenadas dependen del tamaño de la imagen, todas las imágenes deben tener la misma resolución que la usada para medir las regiones (por ejemplo, escaneadas siempre a 300 DPI).
ParámetroTipoPor defectoDescripción
pathstring—Ruta del archivo de imagen (.png, .jpg, .bmp, .tiff).
fieldsDictionary—Diccionario nombreCampo → { "x": …, "y": …, "w": …, "h": … } con la región en píxeles (enteros).
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 de cada región: none · auto · deskew · binarize. Ver preprocesado.

Devuelve un Dictionary<string, string> con una clave por cada campo de fields y el texto reconocido en su región. Un campo cuya región no es un objeto { x, y, w, h }, o cuya zona no tiene texto legible, queda con "".

Extraer datos de un formulario siempre con el mismo diseño:

OCR Extract Form Fields
path = rutaFormulario
language = "spa"
fields = {
"nombre": { "x": 120, "y": 80, "w": 300, "h": 30 },
"documento":{ "x": 120, "y": 130, "w": 200, "h": 30 },
"fecha": { "x": 420, "y": 80, "w": 150, "h": 30 }
}
→ output: datos
Log message = "Formulario de " + datos["nombre"] + " (" + datos["documento"] + ")"
MensajeCausa y solución
'fields' es obligatorio.Falta fields.
'fields' debe ser un diccionario que asocie nombres de campo con objetos de región { x, y, w, h }.fields no es un objeto { campo: región }.
El campo '…' debe declarar x, y, w, h enteros. Recibido: …A la región de ese campo le falta una clave o un valor no es numérico. Usa exactamente x, y, w, h.
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.