Region da hipótese. Ao exibir a região da hipótese na imagem, ou ao criar um bloco com base na hipótese, os limites da região não seguem exatamente os limites de cada retângulo. Em vez disso, os limites da área de pesquisa são suavizados para melhor visualização. Uma região criada dessa forma pode ser obtida usando o método SimplifiedRegion da hipótese. Os métodos Region e SimplifiedRegion podem ser usados na seção Search Conditions (ao descrever a área de pesquisa do elemento) ou ao descrever as propriedades do bloco e usar os elementos já encontrados.
Se uma hipótese não for encontrada, ela coincide com o retângulo difuso de sua área de pesquisa. Ao exibir uma hipótese não encontrada na imagem, o programa desenhará o retângulo externo do retângulo difuso.
Os limites Left, top, Right e Bottom de qualquer hipótese são intervalos. Para cada hipótese encontrada, o intervalo se degenera em um ponto, ou seja, Left.Start = Left.End, top.Start = top.End, etc. Para uma hipótese não encontrada, os intervalos dos limites coincidem com os intervalos de sua área de pesquisa.
Acessar as hipóteses geradas e suas propriedades no código das caixas de diálogo correspondentes de blocos e elementos oferece ferramentas adicionais para configurar o FlexiLayout. As hipóteses dos elementos podem ser acessadas pelos nomes dos elementos. Para acessar a hipótese do elemento atual na seção Hypotheses Evaluation, você pode usar apenas o nome da propriedade.
O acesso às hipóteses e suas propriedades é em modo somente leitura. As hipóteses para elementos podem ser acessadas nas seções Search Conditions e Hypotheses Evaluation, bem como na seção Code Editor do field. Em Search Conditions, você pode acessar as hipóteses geradas (e suas propriedades) para todos os elementos localizados acima do elemento atual na árvore Elements. Em Hypotheses Evaluation, você pode acessar as hipóteses geradas para os elementos localizados acima do elemento atual na árvore Elements e a hipótese do próprio elemento atual. No Code Editor do field, você pode acessar as hipóteses (e suas propriedades) de todos os elementos.
A tabela abaixo lista as propriedades das hipóteses para todos os tipos de elemento.
| Property | Description |
|---|---|
Logic IsNull() | Indica se esta é uma hipótese nula (se o elemento foi detectado, a propriedade IsNull da hipótese é True). |
Logic IsFound() | Indica se a hipótese não é nula (se o elemento foi detectado, a propriedade IsNull da hipótese é False). Equivalente a IsNull. |
XInterval Left() | O limite esquerdo da hipótese, faixa horizontal em coordenadas globais. |
YInterval top() | O limite superior da hipótese, faixa vertical em coordenadas globais. |
XInterval Right() | O limite direito da hipótese, faixa horizontal em coordenadas globais. |
YInterval Bottom() | O limite inferior da hipótese, faixa vertical em coordenadas globais. |
XInterval XCenter() | A coordenada X do centro da hipótese, faixa horizontal em coordenadas globais. |
YInterval YCenter() | A coordenada Y do centro da hipótese, faixa vertical em coordenadas globais. |
DistInterval Width() | A largura da hipótese em coordenadas globais, faixa de distâncias. |
DistInterval Height() | A altura da hipótese em coordenadas globais, faixa de distâncias. |
FuzzyRect FuzzyRect() | Retângulo difuso da hipótese em coordenadas globais. |
Rect Rect() | O retângulo que circunscreve a hipótese em coordenadas globais. Coincide com o retângulo externo do retângulo difuso. |
Region Region() | A região da hipótese em coordenadas globais. O método não é compatível com elementos do tipo Group. |
Region SimplifiedRegion() | A região da hipótese em coordenadas globais, simplificada para melhor representação visual. O método não é compatível com elementos do tipo Group. |
ImageObjectSet Set() | Os objetos de imagem que fazem parte da hipótese. |
ImageObjectSet ExcludeSet() | Os objetos de imagem que estão na região excluída da área de pesquisa por métodos do tipo Exclude. |
RectArray Rects() | A matriz de retângulos incluídos na hipótese. Para a maioria dos elementos, coincide com a matriz de retângulos que envolvem os objetos detectados. Para os elementos White Gap e Region, não há objetos disponíveis. |
Int HypothesesCount() | O número de hipóteses que podem ser formuladas para o elemento na área de pesquisa. A função só pode ser usada se os números máximo e mínimo de páginas do documento estiverem definidos como 1, ou seja, o documento detectado tem apenas uma página. Se você usar esta função para um documento com várias páginas, a correspondência com um FlexiLayout retornará um erro. |
PageInterval Pages() | A faixa de páginas em que a hipótese deve ser encontrada. |
PageArea PageAreaGlobal( Int PageNumber ) | Retorna a parte da hipótese localizada na página indicada em coordenadas globais. |
PageArea PageAreaLocal( Int PageNumber ) | Retorna a parte da hipótese localizada na página indicada nas coordenadas locais da página. |
Código de exemplo para chamar propriedades de hipóteses
IsNull). Acessar a propriedade de uma hipótese nula (que corresponde a um elemento não detectado) ocasionará um erro.
Suponha que haja um identificador no seu documento na forma de um código de barras e que você queira que o FlexiLayout corresponda apenas aos documentos em que o valor do código de barras seja 1556897142240. Faça o seguinte para obter o resultado desejado. Na seção Hypotheses Evaluation do elemento que descreve as propriedades e as restrições de pesquisa do código de barras, escreva o seguinte código:
Quality: 0; redefinirá o valor da hipótese para 0. Em seguida, é gerada uma hipótese nula para esse elemento, para a qual o programa também verifica a condição value != "1556897142240". Como agora não é permitido acessar o valor de uma hipótese nula (ela não possui essa propriedade), o programa emite a mensagem de erro “…undefined hypothesis…”
Portanto, você precisa ajustar o código da seguinte forma:
else {Quality: 0;} ao código, a instrução será executada para todas as hipóteses (incluindo a hipótese nula) e o matching do FlexiLayout será interrompido, porque a cadeia completa de hipóteses também será redefinida para 0 neste elemento.
Métodos Region Region() e Region SimplifiedRegion() comparados
Region Region() e Region SimplifiedRegion() permitem obter a região de um elemento, mas o método Region Region() obtém a região exata, enquanto o método Region SimplifiedRegion() obtém o Rectangle criado com base nas coordenadas do contorno.