Una hipótesis es una suposición de FlexiLayout Studio de que los objetos detectados corresponden a un elemento determinado, es decir, que cumplen las propiedades y los criterios de búsqueda especificados para ese elemento.
Puede haber varios objetos o conjuntos de objetos en el área de búsqueda del elemento, y todos ellos pueden corresponder a dicho elemento. En ese caso, FlexiLayout Studio formulará una hipótesis para cada objeto detectado.
Por comodidad, el término hipótesis también se usa para referirse al conjunto de objetos incluidos en una hipótesis determinada.
Cómo se calcula la calidad de una hipótesis
La calidad de una hipótesis mide hasta qué punto el objeto detectado coincide con la descripción del elemento correspondiente. Es un valor numérico de 0 a 1.
FlexiLayout Studio calcula la calidad de una hipótesis como Pre-search quality × Post-search quality, donde:
- La calidad de prebúsqueda – La calidad de la configuración realizada en el cuadro de diálogo Propiedades y en el campo relación avanzada de prebúsqueda.
- La calidad de posbúsqueda – El resultado de aplicar las condiciones especificadas en el campo Relaciones avanzadas de posbúsqueda.
La calidad de una hipótesis para un elemento de grupo se calcula multiplicando las calidades de las hipótesis de todos los elementos constituyentes.
Para los elementos opcionales, FlexiLayout Studio formula una hipótesis nula.
Una hipótesis nula es una hipótesis que FlexiLayout Studio formula cuando no detecta ningún objeto correspondiente a un elemento opcional en el área de búsqueda.
Si FlexiLayout Studio no encuentra ningún objeto correspondiente a un elemento opcional, no detiene el emparejamiento de FlexiLayout. En su lugar, formula una hipótesis nula y le asigna la calidad que usted establece al crear el elemento opcional.
Hipótesis: un ejemplo práctico
Supongamos que necesita crear dos elementos para localizar dos textos estáticos en sus imágenes. El primer texto estático es “mother”, el segundo es “father”, y el texto “father” siempre se encuentra debajo del texto “mother”.
Cree dos elementos Static Text. El primero, StaticText1, busca el texto “mother”, y el segundo, StaticText2, busca el texto “father”. Suponga que ambos elementos son opcionales y que la calidad de la hipótesis nula de cada uno de ellos está establecida en 0.97.
No se establece ninguna restricción en el área de búsqueda de StaticText1. Como el texto “father” siempre se encuentra debajo del texto “mother”, puede especificar que StaticText2 debe estar siempre debajo de StaticText1. Para ello, escriba la restricción correspondiente en la pestaña Relations del cuadro de diálogo Propiedades del elemento StaticText2: Below: SearchElements.StaticText1;.
La siguiente figura muestra los resultados del emparejamiento de FlexiLayout con una imagen en la que la palabra “mother” aparece dos veces (encima y debajo de la palabra “father”) y se ha cometido un error de OCR en la palabra “mother” situada encima de la palabra “father”.
El emparejamiento de FlexiLayout ha generado dos hipótesis para el elemento StaticText1. La primera hipótesis corresponde a la palabra “mother”, reconocida con un error de OCR y situada encima de la palabra “father”, y tiene una calidad de 0.98. La segunda hipótesis corresponde a la palabra “mother” situada debajo de la palabra “father” y tiene una calidad de 1.
En esta etapa, la calidad de cada cadena es la misma que la de la hipótesis correspondiente. Por lo tanto, la mejor cadena consiste en la hipótesis con una calidad de 1.
Como el elemento StaticText2 debe estar debajo del elemento StaticText1 y FlexiLayout Studio ha generado dos hipótesis para el elemento StaticText1, ahora intenta encontrar el texto estático requerido en dos áreas de búsqueda.
Si FlexiLayout Studio sigue la segunda hipótesis, con una calidad de 1, que encontró la palabra “mother” debajo de la palabra “father”, no logra encontrar el elemento StaticText2 debajo del elemento StaticText1. En consecuencia, genera una hipótesis nula con una calidad de 0.97, y la calidad de la cadena de hipótesis resultante es 1 × 0.97 = 0.97.
Si FlexiLayout Studio sigue la primera hipótesis, con una calidad de 0.98, que encontró la palabra “mother” encima de la palabra “father”, detecta correctamente el elemento StaticText2 debajo del elemento StaticText1 y genera una hipótesis con una calidad de 1. La calidad de la cadena de hipótesis resultante es 0.98 × 1 = 0.98.
Como resultado, FlexiLayout Studio selecciona la cadena con una calidad total de 0.98.