Region 메서드를 통해 얻을 수 있습니다. 가설의 영역을 이미지에 표시하거나 가설을 기반으로 블록을 생성할 때, 이 영역의 경계는 각 사각형의 경계를 정확히 따르지 않습니다. 대신, 더 나은 시각화를 위해 검색 영역의 경계가 부드럽게 보정됩니다. 이와 같이 생성된 영역은 가설의 SimplifiedRegion 메서드를 사용하여 얻을 수 있습니다. Region 및 SimplifiedRegion 메서드는 Search Conditions 섹션(요소의 검색 영역을 정의할 때)과, 블록의 속성을 정의하면서 이미 발견된 요소를 사용할 때 모두 사용할 수 있습니다.
가설이 발견되지 않은 경우, 해당 가설은 검색 영역의 퍼지 사각형과 일치합니다. 발견되지 않은 가설을 이미지에 표시할 때, 프로그램은 퍼지 사각형의 외곽 사각형을 그립니다.
모든 가설의 Left, top, Right, Bottom 경계는 구간입니다. 발견된 각 가설의 경우 이 구간은 한 점으로 축소됩니다. 즉, Left.Start = Left.End, top.Start = top.End 등입니다. 발견되지 않은 가설의 경우, 각 경계의 구간은 검색 영역의 구간과 일치합니다.
블록과 요소의 해당 대화 상자 코드에서 생성된 가설과 그 속성에 접근하면 FlexiLayout을 구성하기 위한 추가적인 도구를 제공받을 수 있습니다. 요소 가설에는 요소 이름으로 접근할 수 있습니다. Hypotheses Evaluation 섹션에서 현재 요소에 대한 가설에 접근하려면 속성 이름만 사용할 수 있습니다.
가설과 그 속성은 읽기 전용 모드로만 접근할 수 있습니다. 요소에 대한 가설은 Search Conditions 및 Hypotheses Evaluation 섹션과 field의 Code Editor 섹션에서 모두 접근할 수 있습니다. Search Conditions에서는 Elements 트리에서 현재 요소 위에 있는 모든 요소에 대해 생성된 가설(및 그 속성)에 접근할 수 있습니다. Hypotheses Evaluation에서는 Elements 트리에서 현재 요소 위에 있는 요소들에 대해 생성된 가설과, 현재 요소 자체에 대한 가설에 접근할 수 있습니다. field의 Code Editor에서는 모든 요소에 대한 가설(및 그 속성)에 접근할 수 있습니다.
아래 표에는 모든 유형의 요소에 대한 가설 속성이 나와 있습니다.
| Property | Description |
|---|---|
Logic IsNull() | 이것이 null 가설인지 여부입니다(요소가 감지된 경우, 가설의 IsNull 속성은 True입니다). |
Logic IsFound() | 가설이 null이 아닌지 여부입니다(요소가 감지되지 않은 경우, 가설의 IsNull 속성은 False입니다). IsNull과 동일합니다. |
XInterval Left() | 가설의 왼쪽 경계로, 전역 좌표계에서의 수평 범위입니다. |
YInterval top() | 가설의 위쪽 경계로, 전역 좌표계에서의 수직 범위입니다. |
XInterval Right() | 가설의 오른쪽 경계로, 전역 좌표계에서의 수평 범위입니다. |
YInterval Bottom() | 가설의 아래쪽 경계로, 전역 좌표계에서의 수직 범위입니다. |
XInterval XCenter() | 가설 중심의 X 좌표로, 전역 좌표계에서의 수평 위치입니다. |
YInterval YCenter() | 가설 중심의 Y 좌표로, 전역 좌표계에서의 수직 위치입니다. |
DistInterval Width() | 전역 좌표계에서 가설의 너비로, 거리 구간입니다. |
DistInterval Height() | 전역 좌표계에서 가설의 높이로, 거리 구간입니다. |
FuzzyRect FuzzyRect() | 전역 좌표계에서의 가설의 퍼지 사각형입니다. |
Rect Rect() | 전역 좌표계에서 가설을 둘러싸는 사각형입니다. 퍼지 사각형의 외곽 사각형과 일치합니다. |
Region Region() | 전역 좌표계에서의 가설 영역입니다. 이 메서드는 Group 요소에는 지원되지 않습니다. |
Region SimplifiedRegion() | 더 나은 시각적 표현을 위해 단순화된 전역 좌표계에서의 가설 영역입니다. 이 메서드는 Group 요소에는 지원되지 않습니다. |
ImageObjectSet Set() | 가설을 구성하는 이미지 객체입니다. |
ImageObjectSet ExcludeSet() | Exclude 유형 메서드에 의해 검색 영역에서 제외된 영역 안에 있는 이미지 객체입니다. |
RectArray Rects() | 가설에 포함된 사각형 배열입니다. 대부분의 요소의 경우 감지된 객체를 둘러싸는 사각형 배열과 일치합니다. White Gap 및 Region 요소의 경우 사용 가능한 객체가 없습니다. |
Int HypothesesCount() | 검색 영역에서 해당 요소에 대해 수립할 수 있는 가설의 수입니다. 이 함수는 문서에서 페이지의 최소 및 최대 개수가 1로 설정된 경우, 즉 감지된 문서가 하나의 페이지만 갖는 경우에만 사용할 수 있습니다. 이 함수를 다중 페이지 문서에 사용하면 FlexiLayout 매칭 시 오류가 반환됩니다. |
PageInterval Pages() | 가설을 찾아야 하는 페이지 범위입니다. |
PageArea PageAreaGlobal( Int PageNumber ) | 지정된 페이지에서, 전역 좌표계로 표현되는 가설이 위치한 부분을 반환합니다. |
PageArea PageAreaLocal( Int PageNumber ) | 지정된 페이지에서, 페이지의 로컬 좌표계로 표현되는 가설이 위치한 부분을 반환합니다. |
가설 속성 호출을 위한 샘플 코드
IsNull 속성을 호출하여) 반드시 확인해야 합니다. null 가설(검출되지 않은 요소에 해당)의 속성에 접근하면 오류가 발생합니다.
예를 들어, 문서에 바코드 형태의 식별자가 있고, FlexiLayout이 바코드 값이 1556897142240인 문서와만 매칭되도록 하고 싶다고 가정해 보겠습니다. 원하는 결과를 얻으려면 다음을 수행하십시오. 바코드의 속성과 검색 제약 조건을 설명하는 요소의 Hypotheses Evaluation 섹션에 다음 코드를 작성하십시오:
Quality: 0; 코드가 가설의 값을 0으로 재설정합니다. 그런 다음 이 요소에 대해 null 가설이 생성되며, 프로그램은 이 null 가설에 대해서도 value != "1556897142240" 조건을 검사합니다. null 가설의 값에 접근하는 것은 허용되지 않으므로(해당 속성이 없음), 프로그램은 “…undefined hypothesis…” 오류 메시지를 출력합니다.
따라서 코드를 다음과 같이 조정해야 합니다:
else {Quality: 0;}를 추가하면, 이 구문은 모든 가설(널 가설 포함)에 대해 실행되고, 이 요소에서 전체 가설 체인의 quality 값도 0으로 재설정되므로 FlexiLayout 매칭이 중단됩니다.
메서드 Region Region()과 Region SimplifiedRegion() 비교
Region Region()과 Region SimplifiedRegion()을 사용하면 요소의 영역을 얻을 수 있지만, Region Region() 메서드는 정확한 영역을 반환하는 반면 Region SimplifiedRegion() 메서드는 경계 좌표를 기반으로 생성된 사각형 영역을 반환합니다.