Region dell’ipotesi. Durante la visualizzazione della regione dell’ipotesi sull’immagine, o durante la creazione di un blocco sulla base dell’ipotesi, i confini della regione non seguono esattamente quelli di ciascun rettangolo: i contorni dell’area di ricerca vengono invece smussati per una migliore visualizzazione. Una regione così creata può essere ottenuta utilizzando il metodo SimplifiedRegion dell’ipotesi. I metodi Region e SimplifiedRegion possono essere utilizzati sia nella sezione Search Conditions (quando si descrive l’area di ricerca dell’elemento), sia quando si descrivono le proprietà del blocco e si utilizzano gli elementi già trovati.
Se un’ipotesi non è stata trovata, coincide con il rettangolo sfocato della sua area di ricerca. Durante la visualizzazione di un’ipotesi non trovata sull’immagine, il programma disegnerà il rettangolo esterno di tale rettangolo sfocato.
I confini Left, Top, Right e Bottom di qualsiasi ipotesi sono intervalli. Per ogni ipotesi trovata, l’intervallo degenera in un punto, cioè Left.Start = Left.End, Top.Start = Top.End, ecc. Per un’ipotesi non trovata, gli intervalli dei confini coincidono con gli intervalli della sua area di ricerca.
Accedere alle ipotesi generate e alle loro proprietà nel codice delle corrispondenti finestre di dialogo di blocchi ed elementi mette a disposizione strumenti aggiuntivi per la configurazione del FlexiLayout. Le ipotesi degli elementi sono accessibili per nome degli elementi. Per accedere all’ipotesi dell’elemento corrente nella sezione Hypotheses Evaluation, è possibile usare solo il nome della proprietà.
Le ipotesi e le loro proprietà sono accessibili in modalità di sola lettura. Le ipotesi per gli elementi sono accessibili nelle sezioni Search Conditions e Hypotheses Evaluation, nonché nella sezione Code Editor del field. In Search Conditions è possibile accedere alle ipotesi generate (e alle relative proprietà) per tutti gli elementi collocati sopra l’elemento corrente nell’albero Elements. In Hypotheses Evaluation è possibile accedere alle ipotesi generate per gli elementi collocati sopra l’elemento corrente nell’albero Elements e all’ipotesi per l’elemento corrente stesso. Nel Code Editor del field è possibile accedere alle ipotesi (e alle loro proprietà) per tutti gli elementi.
La tabella seguente elenca le proprietà delle ipotesi per tutti i tipi di elemento.
| Proprietà | Descrizione |
|---|---|
Logic IsNull() | Indica se si tratta di un’ipotesi nulla (se l’elemento è stato rilevato, la proprietà IsNull dell’ipotesi è True). |
Logic IsFound() | Indica se l’ipotesi non è nulla (se l’elemento non è stato rilevato, la proprietà IsNull dell’ipotesi è False). Equivalente a IsNull. |
XInterval Left() | Il limite sinistro dell’ipotesi, intervallo orizzontale in coordinate globali. |
YInterval top() | Il limite superiore dell’ipotesi, intervallo verticale in coordinate globali. |
XInterval Right() | Il limite destro dell’ipotesi, intervallo orizzontale in coordinate globali. |
YInterval Bottom() | Il limite inferiore dell’ipotesi, intervallo verticale in coordinate globali. |
XInterval XCenter() | La coordinata X del centro dell’ipotesi, intervallo orizzontale in coordinate globali. |
YInterval YCenter() | La coordinata Y del centro dell’ipotesi, intervallo verticale in coordinate globali. |
DistInterval Width() | La larghezza dell’ipotesi in coordinate globali, intervallo delle distanze. |
DistInterval Height() | L’altezza dell’ipotesi in coordinate globali, intervallo delle distanze. |
FuzzyRect FuzzyRect() | Rettangolo fuzzy dell’ipotesi in coordinate globali. |
Rect Rect() | Il rettangolo che circoscrive l’ipotesi in coordinate globali. Coincide con il rettangolo esterno del rettangolo fuzzy. |
Region Region() | L’area dell’ipotesi in coordinate globali. Il metodo non è supportato per gli elementi Group. |
Region SimplifiedRegion() | L’area dell’ipotesi in coordinate globali, semplificata per una migliore rappresentazione visiva. Il metodo non è supportato per gli elementi Group. |
ImageObjectSet Set() | Gli oggetti immagine che fanno parte dell’ipotesi. |
ImageObjectSet ExcludeSet() | Gli oggetti immagine che si trovano nell’area esclusa dall’area di ricerca dai metodi di tipo Exclude. |
RectArray Rects() | L’array dei rettangoli inclusi nell’ipotesi. Per la maggior parte degli elementi coincide con l’array dei rettangoli che racchiudono gli oggetti rilevati. Per gli elementi White Gap e Region non sono disponibili oggetti. |
Int HypothesesCount() | Il numero di ipotesi formulabili per l’elemento nell’area di ricerca. La funzione può essere usata solo se i numeri massimo e minimo di pagine del documento sono impostati su 1, ossia il documento rilevato ha una sola pagina. Se si usa questa funzione per un documento multipagina, il matching di un FlexiLayout restituirà un errore. |
PageInterval Pages() | L’intervallo di pagine in cui trovare l’ipotesi. |
PageArea PageAreaGlobal( Int PageNumber ) | Restituisce la parte dell’ipotesi situata nella pagina indicata in coordinate globali. |
PageArea PageAreaLocal( Int PageNumber ) | Restituisce la parte dell’ipotesi situata nella pagina indicata nelle coordinate locali della pagina. |
Esempio di codice per richiamare le proprietà di un’ipotesi
Prima di accedere alle proprietà di un’ipotesi per un elemento semplice o di tipo Group, assicurati che l’ipotesi a cui vuoi accedere non sia nulla (verifica la proprietàIsNull). L’accesso a una proprietà di un’ipotesi nulla (che corrisponde a un elemento non rilevato) causerà un errore.
Supponiamo che nel tuo documento sia presente un identificatore sotto forma di codice a barre e che tu voglia che il tuo FlexiLayout corrisponda solo ai documenti in cui il valore del codice a barre è 1556897142240. Procedi come segue per ottenere il risultato desiderato. Nella sezione Hypotheses Evaluation dell’elemento che descrive le proprietà e i vincoli di ricerca del codice a barre, scrivi il seguente codice:
Quality: 0; azzera il valore dell’ipotesi. Viene quindi generata un’ipotesi nulla per questo elemento, sulla quale il programma verifica anche la condizione value != "1556897142240". Poiché l’accesso al valore di un’ipotesi nulla non è consentito (non dispone di questa proprietà), il programma restituisce il messaggio di errore “…undefined hypothesis…”
Pertanto, è necessario modificare il codice come segue:
else {Quality: 0;} al codice, l’istruzione verrà eseguita per tutte le ipotesi (inclusa l’ipotesi nulla) e l’abbinamento del FlexiLayout verrà interrotto, perché l’intera catena di ipotesi verrà anch’essa azzerata a 0 in corrispondenza di questo elemento.
Confronto tra i metodi Region Region() e Region SimplifiedRegion()
Region Region() e Region SimplifiedRegion() consentono di ottenere la regione di un elemento, ma Region Region() restituisce la regione esatta, mentre Region SimplifiedRegion() restituisce il Rectangle creato in base alle coordinate del bordo.