Cómo la función Exclude elimina regiones de un área de búsqueda
Exclude excluye una región del área de búsqueda de un elemento. La región que se va a excluir se especifica al llamar a la función.
La región excluida puede ser cualquiera de las siguientes:
- La región de una hipótesis (detectada o no)
- Un rectángulo o un array de rectángulos de los elementos encontrados
- Una región creada a partir de las regiones de objetos que forman parte de una hipótesis encontrada (consulte el método
ExcludeSet)

El proyecto de ejemplo Exclude.fsp
Exclude.fsp (carpeta %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Exclude) muestra cómo funciona la función Exclude.
El proyecto tiene cuatro páginas:
- Página 1 – el campo de dirección está escrito en varias líneas. El nombre Address: está en la primera línea, por lo que no podemos decir que el campo de datos buscado esté a la derecha o debajo del nombre del campo. Sin embargo, el nombre debe excluirse del reconocimiento.
- Página 2 – el campo de dirección no tiene nombre.
- Páginas 3 y 4 – la línea (Address) se encuentra dentro del campo de datos. Sin embargo, debe excluirse del reconocimiento.
Cree elementos para los nombres de los campos y el campo de dirección
El elemento del nombre debe crearse antes que el elemento del campo de dirección, porque la función
Exclude solo permite hacer referencia a elementos que estén más arriba en el árbol de FlexiLayout que el elemento actual.
Excluir el nombre del campo del área de búsqueda de Address
Después de guardar las propiedades del elemento, ejecute de nuevo el procedimiento de emparejamiento de FlexiLayout. Verá que la región del bloque correspondiente al campo de dirección adquiere una forma no rectangular, porque se ha recortado de ella la región del nombre.

La sección Exclude regions of elements le permite excluir del área de búsqueda del elemento actual la región de una hipótesis encontrada para otro elemento. Para excluir un área geométricamente más compleja, o para detectar primero una región y luego excluirla del proceso de reconocimiento, use las funciones
Exclude, ExcludeRect, y ExcludeSet en el campo relación avanzada de prebúsqueda.La región de un bloque, por definición, consta de rectángulos colocados uno sobre otro, de modo que cualquier línea horizontal puede cruzar la región solo una vez; es decir, no puede haber “dientes” verticales que sobresalgan.Por lo tanto, si la línea que se debe excluir y la información requerida están situadas al mismo nivel o aproximadamente al mismo nivel, el nombre no puede excluirse en la etapa de creación de FlexiLayout. En ese caso, el nombre puede excluirse después del reconocimiento en FlexiCapture mediante la regla Sustituir de la lista.


