Region de la hipótesis. Al mostrar la región de la hipótesis en la imagen o al crear un bloque a partir de la hipótesis, los límites de la región no siguen exactamente los límites de cada rectángulo. En su lugar, los límites del área de búsqueda se suavizan para una mejor visualización. Una región creada de este modo se puede obtener mediante el método SimplifiedRegion de la hipótesis. Los métodos Region y SimplifiedRegion se pueden usar tanto en la sección Search Conditions (al describir el área de búsqueda del elemento) como al describir las propiedades del bloque y usar los elementos ya encontrados.
Si no se encontró una hipótesis, esta coincide con el rectángulo difuso de su área de búsqueda. Al mostrar en la imagen una hipótesis no encontrada, el programa dibujará el rectángulo externo del rectángulo difuso.
Los límites Left, top, Right y Bottom de cualquier hipótesis son rangos. Para cada hipótesis encontrada, el rango se degenera en un punto, es decir, Left.Start = Left.End, top.Start = top.End, etc. Para una hipótesis no encontrada, los rangos de los límites coinciden con los rangos de su área de búsqueda.
Acceder a las hipótesis generadas y a sus propiedades en el código de los cuadros de diálogo correspondientes de bloques y elementos proporciona herramientas adicionales para configurar el FlexiLayout. Se puede acceder a las hipótesis de los elementos por los nombres de los elementos. Para acceder a una hipótesis del elemento actual en la sección Hypotheses Evaluation, puede usar únicamente el nombre de la propiedad.
El acceso a las hipótesis y sus propiedades es de solo lectura. Se puede acceder a las hipótesis de los elementos en las secciones Search Conditions y Hypotheses Evaluation, así como en la sección Code Editor del campo. En Search Conditions, puede acceder a las hipótesis generadas (y sus propiedades) para todos los elementos situados por encima del elemento actual en el árbol de Elements. En Hypotheses Evaluation, puede acceder a las hipótesis generadas para los elementos situados por encima del elemento actual en el árbol de Elements y a la hipótesis del propio elemento actual. En el Code Editor del campo, puede acceder a las hipótesis (y sus propiedades) para todos los elementos.
La siguiente tabla enumera las propiedades de las hipótesis para todos los tipos de elemento.
| Propiedad | Descripción |
|---|---|
Logic IsNull() | Indica si se trata de una hipótesis nula (si se ha detectado el elemento, la propiedad IsNull de la hipótesis es True). |
Logic IsFound() | Indica si la hipótesis no es nula (si no se ha detectado el elemento, la propiedad IsNull de la hipótesis es False). Equivalente a IsNull. |
XInterval Left() | El límite izquierdo de la hipótesis; rango horizontal en coordenadas globales. |
YInterval top() | El límite superior de la hipótesis; rango vertical en coordenadas globales. |
XInterval Right() | El límite derecho de la hipótesis; rango horizontal en coordenadas globales. |
YInterval Bottom() | El límite inferior de la hipótesis; rango vertical en coordenadas globales. |
XInterval XCenter() | La coordenada X del centro de la hipótesis; rango horizontal en coordenadas globales. |
YInterval YCenter() | La coordenada Y del centro de la hipótesis; rango vertical en coordenadas globales. |
DistInterval Width() | El ancho de la hipótesis en coordenadas globales; rango de distancias. |
DistInterval Height() | La altura de la hipótesis en coordenadas globales; rango de distancias. |
FuzzyRect FuzzyRect() | Rectángulo difuso de la hipótesis en coordenadas globales. |
Rect Rect() | El rectángulo que circunscribe la hipótesis en coordenadas globales. Coincide con el rectángulo externo del rectángulo difuso. |
Region Region() | La región de la hipótesis en coordenadas globales. El método no es compatible con elementos de tipo Group. |
Region SimplifiedRegion() | La región de la hipótesis en coordenadas globales, simplificada para una mejor representación visual. El método no es compatible con elementos de tipo Group. |
ImageObjectSet Set() | Los objetos de imagen que forman parte de la hipótesis. |
ImageObjectSet ExcludeSet() | Los objetos de imagen que están en la región excluida del área de búsqueda por métodos de tipo Exclude. |
RectArray Rects() | La matriz de rectángulos incluidos en la hipótesis. Para la mayoría de los elementos, coincide con la matriz de rectángulos que delimitan los objetos detectados. En los elementos White Gap y Region no hay objetos disponibles. |
Int HypothesesCount() | La cantidad de hipótesis que pueden formularse para el elemento en el área de búsqueda. La función solo puede usarse si el número máximo y mínimo de páginas del documento está establecido en 1, es decir, el documento detectado tiene una sola página. Si usa esta función para un documento de varias páginas, la comparación con un FlexiLayout devolverá un error. |
PageInterval Pages() | El rango de páginas en el que debe encontrarse la hipótesis. |
PageArea PageAreaGlobal( Int PageNumber ) | Devuelve la parte de la hipótesis ubicada en la página indicada, en coordenadas globales. |
PageArea PageAreaLocal( Int PageNumber ) | Devuelve la parte de la hipótesis ubicada en la página indicada, en las coordenadas locales de la página. |
Código de ejemplo para invocar las propiedades de una hipótesis
IsNull). Acceder a una propiedad de una hipótesis nula (que corresponde a un elemento no detectado) provocará un error.
Suponga que hay un identificador en su documento en forma de código de barras y que desea que su FlexiLayout coincida solo con aquellos documentos cuyo valor de código de barras sea 1556897142240. Haga lo siguiente para obtener el resultado deseado. En la sección Hypotheses Evaluation del elemento que describe las propiedades y restricciones de búsqueda del código de barras, escriba el siguiente código:
Quality: 0; restablece el valor de la hipótesis a 0. A continuación, se genera una hipótesis nula para este elemento, para la cual el programa también verifica la condición value != "1556897142240". Dado que acceder al valor de una hipótesis nula no está permitido (no tiene esta propiedad), el programa muestra el mensaje de error “…undefined hypothesis…”
Por lo tanto, debes ajustar el código de la siguiente manera:
else {Quality: 0;} al código, la instrucción se ejecutará para todas las hipótesis (incluida la hipótesis nula) y se detendrá la coincidencia del FlexiLayout, porque la cadena completa de hipótesis también se restablecerá a 0 en este elemento.
Métodos Region Region() y Region SimplifiedRegion() comparados
Region Region() y Region SimplifiedRegion() permiten obtener la región de un elemento, pero el método Region Region() obtiene la región exacta, mientras que el método Region SimplifiedRegion() obtiene el Rectangle creado a partir de las coordenadas del contorno.