# OCR

Esta función extrae texto impreso o manuscrito de una imagen y devuelve resultados tanto visuales como textuales. Está diseñada para un uso sencillo: proporciona una imagen, ajusta la sensibilidad y activa la rotación automática o la superposición de texto según lo necesites.

## 📥 Entradas <a href="#inputs" id="inputs"></a>

`Image` Este conector recibe la imagen desde la que quieres leer texto.

## 📤 Salidas <a href="#outputs" id="outputs"></a>

`Result` Imagen anotada con los recuadros de texto detectados (si hay un visualizador conectado).

`Whole Text` Texto reconocido concatenado en una sola cadena.

`Texts` Lista de cadenas de texto detectadas (pueden ser múltiples salidas).

`Boxes` Recuadros detectados para cada instancia de texto (coordenadas).

## 🕹️ Controles <a href="#controls" id="controls"></a>

`Auto Rotation` Interruptor para permitir que el bloque intente leer texto girado o invertido.

`Show Texts` Interruptor para dibujar el texto reconocido y la confianza en la imagen anotada.

`Threshold` Deslizador para controlar la confianza mínima requerida para aceptar una detección (más bajo = más resultados; más alto = menos pero más fiables).

## 🎯 Características <a href="#features" id="features"></a>

* Extracción de texto en tiempo real desde las imágenes que se alimentan al bloque.
* Opción de rotar automáticamente la imagen de entrada para leer texto invertido o girado.
* Umbral de confianza para filtrar reconocimientos de baja fiabilidad.
* Salida visual con recuadros y superposición de texto opcional para verificación rápida.
* Entrega de salidas estructuradas (lista de textos y cajas) y una salida de texto concatenado para uso posterior sencillo.

## ⚙️ Cómo se ejecuta <a href="#running-mechanism" id="running-mechanism"></a>

Cuando se proporciona una imagen al conector de entrada, el bloque ejecuta el proceso OCR y devuelve:

* una imagen anotada en `Result` (si hay alguna salida conectada),
* el texto completo reconocido en `Whole Text`,
* las cadenas detectadas individualmente en `Texts`,
* y las coordenadas de las cajas en `Boxes`.

Usa `Auto Rotation` para mejorar la detección en imágenes giradas. Usa `Threshold` para excluir resultados de baja confianza.

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Conecta una fuente de imagen a `Image` (por ejemplo, cámara o cargador de imágenes).
2. Activa `Auto Rotation` si tus imágenes pueden venir giradas.
3. Ajusta el deslizador `Threshold` para equilibrar sensibilidad (recall) y precisión.
4. Activa `Show Texts` si quieres que la imagen anotada muestre las cadenas reconocidas.
5. Lee las salidas desde `Whole Text`, `Texts` y `Boxes` para registro o procesamiento posterior.

## 💡 Consejos y trucos <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Para resultados más claros, preprocesa la imagen con `Contrast Optimization` y `Blur` para reducir ruido y mejorar el contraste de caracteres.
* Si solo te interesa un área específica, recorta primero usando `Image ROI Select` y alimenta esa imagen recortada al bloque.
* Con imágenes muy grandes, usa `Image Resizer` para reducir tamaño antes de OCR y acelerar el proceso.
* Usa `Show Image` para previsualizar rápidamente la salida anotada durante el desarrollo.
* Si prefieres otro motor OCR o quieres comparar enfoques, prueba `OCR (EasyOCR)` y compara los resultados.
* Guarda los frames y registros reconocidos con `Image Logger` para revisión offline o auditoría.

(sugerencia: combina estos bloques en tu flujo para mejorar la calidad y el rendimiento de la detección: `Image ROI Select`, `Image Resizer`, `Contrast Optimization`, `Blur`, `Show Image`, `Image Logger`, `OCR (EasyOCR)`.)

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* Si no se detecta texto, verifica que la imagen de entrada contenga texto legible y prueba aumentar el contraste o bajar el valor de `Threshold`.
* Si los resultados son ruidosos (muchos falsos positivos), sube el valor de `Threshold` para filtrar detecciones de baja confianza.
* Para texto girado o invertido, activa `Auto Rotation` antes de subir el umbral.
* Si la imagen anotada no aparece, conecta un visualizador o usa `Show Image` para asegurarte de que la salida visual esté enrutada.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/spanish/bloques-de-funcion/ai-blocks/ocr.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
