연산자 라이브러리: Blob
Blob_Analysis_1D 연산자는 높이가 무한한 이진 이미지 내의 객체를 감지하고 그 속성을 파악합니다. 이 연산자의 출력은 각 객체의 속성을 나타내는 여러 데이터 스트림입니다.
![]() |
Blob_Analysis_1D는 구형 연산자입니다. |
|---|---|
|
Blob_Analysis_1D 연산자는 구형 연산자로, 오직 하위 호환성을 위해 유지되고 있습니다. 새로운 설계에서는 BlobDetector1D 를 대신 사용하십시오. |
![]() |
대신 2D 연산자가 필요할 수도 있습니다 |
|---|---|
|
Blob_Analysis_1D 연산자는 물체가 임의의 위치에 있는 경우의 이미징에 사용됩니다. 라인 스캔 애플리케이션에서 물체의 위치를 이미지 트리거를 통해 파악할 수 있다면, 대신 Blob_Analysis_2D 연산자를 사용하십시오. |
이 연산자 참조 설명서에는 다음과 같은 정보가 포함되어 있습니다:
- 연산자의 기능에 대한 설명
- 1차원 응용을 위한 타이밍 모델
- VisualApplets 의 고수준 시뮬레이션에서 연산자 사용
- 운영자 입력 및 출력 포트
- I/O Properties
- 지원되는 링크 형식
- Parameters
- 사용 예
블롭 분석 연산자에 대한 일반적인 소개를 얻으려면 반드시 다음의 소개 부분을 읽어야 합니다. 라이브러리 블롭의 소개 부분을 반드시 읽어야 합니다.
Blob Analysis 1D 연산자는 끝이 없는 1차원 이미지를 위해 설계되었습니다. 일반적으로 2D Blob Analysis의 경우, 객체의 특징은 프레임 내 객체의 위치와 관련이 있으며, 좌표계의 원점은 이미지의 왼쪽 상단 모서리입니다. 그러나 높이가 끝이 없는 1차원 이미지의 경우 이는 불가능합니다. 객체는 y-좌표와 연관될 수 없는데, 이 값이 무한히 커지거나 오버플로우를 일으킬 수 있기 때문입니다.
VisualApplets 의 Blob Analysis 1D 연산자는 객체가 임의의 위치에 있을 수 있는 무한한 이미지를 사용할 수 있게 해줍니다. 이 연산자는 객체와 연관된 참조 입력 "LineMarkerI"를 통해 확장됩니다. 이는 예를 들어 외부 인코더와 트리거 펄스에 의해 제어되는 카운터 값일 수 있습니다. 이 방법을 사용하면, 블롭 분석을 통해 식별된 각 객체를 올바른 참조 위치에 할당할 수 있습니다.
입력 링크 “FlushI”는 출력을 플러시하는 데 사용되며, 즉 출력 프레임을 완료하는 데 사용됩니다. 예를 들어, DMA 전송을 완료하려면 이 링크가 필요합니다.
다음 그림은 Blob Analysis 1D 연산자의 동작을 보여줍니다. 이 그림은 연산자 입력부의 예시 데이터와 그 결과 출력을 보여줍니다. Blob Analysis로 처리된 이진 무한 이미지가 왼쪽에 표시되어 있습니다. 두 번째 열은 LineMarkerI 입력을 나타냅니다. 여기서는 카운터를 사용하여 객체에 참조 값을 할당합니다. 시각적 이해를 돕기 위해 관심 대상 값만 출력됩니다. 라인 마커 입력의 비트 폭은 9비트로 가정합니다. 따라서 값이 512가 되면 오버플로가 발생합니다. 세 번째 열에는 플러시 입력이 표시됩니다. 이 예제에는 단 하나의 플러시 조건만 존재합니다. 오른쪽 열은 Blob Analysis 연산자의 출력을 나타냅니다. 예제를 살펴보면, Blob Analysis 과정에서 이미지와 라인 마커가 함께 처리됨을 알 수 있습니다. 객체가 완성되는 즉시 출력됩니다. 모든 객체의 결과 객체 속성은 해당 객체의 첫 번째 이미지 라인과 함께 설정된 선 마커로 표시됩니다. 바운딩 박스 좌표 X0 및 X1은 Blob Analysis 2D 객체 특징과 유사하며, Y1 좌표는 객체의 높이입니다. Y0 좌표는 Blob Analysis 1D 연산자의 내부 카운터에서 산출됩니다. 이 카운터는 0에서 시작하며, 최대값은 연산자의 속성 대화 상자에서 설정된 객체의 최대 높이와 같습니다. 플러시 조건이 발생하면 출력에서 프레임 종료 플래그가 생성됩니다.
2D 연산자와 마찬가지로, Blob Analysis 1D 연산자는 “M” 유형이며, 모든 출력이 동기식입니다. 2D 연산자와는 달리, 1D 연산자는 세 개의 입력을 가집니다. 첫 번째와 두 번째 입력인 “ImageI”와 “LineMarkerI”는 동기식이며, 동일한 M형 연산자에서 공급되어야 합니다. 입력 링크 “FlushI”는 이미지와 비동기적이므로 별도의 동기화가 필요하지 않습니다. 다음 그림은 여러 구성 중 하나의 예시를 보여줍니다.
앞서 언급한 바와 같이, 플러시(flush)는 출력 프레임을 마무리하는 데, 즉 프레임 종료 플래그를 생성하는 데 사용됩니다. 플러시 입력의 타이밍과 이미지의 객체에 따라, 빈 프레임뿐만 아니라 대량의 데이터를 포함하는 출력 프레임도 생성될 수 있습니다. 이러한 동작을 제어하기 위해 output_frame_size_overflow_handling 및 suppress_empty_output_frames (아래 매개변수 설명 참조)가 사용됩니다. 다음 파형은 다양한 조합의 매개변수 설정, 데이터 및 플러시 입력을 나타낸 스케치입니다. “Blob Data”는 출력 타이밍을 나타냅니다.
첫 번째 예제는 최대 프레임 크기에 도달한 후 새로운 프레임이 생성되는 과정을 보여줍니다. 블롭 연산자는 출력 프레임을 완료한 마지막 블롭이 출력된 후 프레임 끝을 생성합니다. 플러시 신호는 추가적인 프레임 끝을 생성합니다:
다음 예제는 빈 출력 프레임의 생성을 억제하는 방법을 보여줍니다. 보시다시피, 첫 번째 플러시는 무시됩니다. 두 번째 플러시는 출력할 블롭이 준비될 때까지 지연됩니다. 이러한 방식으로, 운영자는 출력 플러시를 지연시킬 수 있습니다:
세 번째 예제에서는 플러시 입력에서 상수 1의 동작을 확인할 수 있습니다. suppress_empty_output_frame이 "yes"로 설정되어 있으므로, 연산자는 각 블롭 출력 후 프레임 끝을 생성합니다. 경고: suppress_empty_output_frame이 실수로 "no"로 설정된 경우, 상수 1은 수백만 개의 프레임 끝을 발생시킬 수 있습니다. 이 출력이 VisualApplets 출력(DMA 연산자)에 연결되어 있다면, PC 과부하를 일으킬 수 있습니다!
마지막 예제는 매개변수 "output_frame_size_overflow_handling"이 "discard_exceeding_objects"로 설정되어 있어 객체가 버려지는 모습을 보여줍니다.
출력 타이밍은 출력 파이프라인에 따라 달라진다는 점에 유의하십시오. 데이터를 처리할 수 없는 경우, 즉 blob 연산자 뒤의 연속된 연산자들이 처리를 차단하는 경우, 플러시 신호가 손실될 수 있습니다.
VisualApplets 의 블롭 분석 연산자는 처리 속도, 즉 대역폭이 이미지 내용에 따라 달라지는 극히 드문 연산자 중 일부입니다. 이미지 내의 객체가 많으면 객체 목록이 방대해져 연산자 입력 속도가 느려질 수 있습니다. 이는 노이즈가 매우 심한 이미지에만 해당됩니다. 제어된 조건에서는 연산자 속도가 충분히 빠를 것입니다.
이 연산자는 지연 시간을 최소로 줄이도록 설계되었습니다. 입력 이미지는 한 줄씩 Blob Analysis로 전송됩니다. 객체가 오퍼레이터로 완전히 전송되면, 오퍼레이터가 전송 완료를 감지하는 즉시 해당 객체의 특징 정보가 출력됩니다. 따라서 블롭 분석은 객체가 오퍼레이터로 완전히 전송되는 즉시 객체를 출력합니다. 객체 특징 정보에 대한 후처리는 이미지 자체의 처리가 아직 진행 중인 동안에도 시작할 수 있습니다.
DMA 및 일부 다른 연산자는 프레임 종료 신호를 수신한 후에야 처리가 완료되었다고 보고한다는 점에 유의하십시오. Blob_Analysis_1D 연산자에서 프레임 종료 신호가 생성되는 방식에 대해서는 flush 입력에 대한 설명을 참조하십시오.
![]() |
Blob_Analysis_1D 시뮬레이션은 신중하게 사용하십시오 |
|---|---|
|
Blob 1D 시뮬레이션에는 몇 가지 한계가 있습니다. 시뮬레이션 기능을 사용할 때는 각별히 주의하시기 바랍니다. |
VisualApplets 이미지 프로토콜이 1D라 하더라도 일반적인 2D 이미지를 사용합니다. 따라서 연산자를 시뮬레이션할 때는 일반적인 이미지를 사용합니다. 각 이미지는 개별적으로 처리됩니다.
운영자의 시뮬레이션은 하드웨어의 동작과 동일하지 않습니다. 여기에는 두 가지 차이점이 있습니다:
-
객체 특징 출력의 순서는 하드웨어와 소프트웨어에 따라 다를 수 있습니다. 이는 하드웨어 출력이 데이터의 타이밍에 좌우되는데, 이러한 타이밍은 VisualApplets 에서 시뮬레이션할 수 없기 때문입니다.
-
두 번째(그리고 가장 중요한) 차이점은 Flush 조건의 동작 방식입니다. FlushI 입력은 이미지 데이터 입력과 완전히 비동기적입니다. FlushI는 출력 프레임을 완료하는 데 사용되며, 즉 출력 스트림에 프레임 종료 마커를 삽입합니다. (위 내용 및 아래의 매개변수 설명 참조.) 플러시는 이미지 데이터와 비동기적이므로, 하드웨어와 동일한 동작을 반영하도록 시뮬레이션할 수 없습니다. 따라서, VisualApplets 시뮬레이션은 대체 시뮬레이션 모델을 사용합니다. 하드웨어의 동작을 그대로 복제할 수 없기 때문에, 시뮬레이션 모델은 의도적으로 하드웨어와 다르게 구현되었습니다. 이 모델은 다음과 같은 특성을 가집니다:
-
이 시뮬레이션은 두 입력의 픽셀 수를 계산하여 데이터 입력과 플러시 입력 간의 상관관계를 비교하려고 합니다. 따라서 데이터 입력과 플러시 입력의 이미지 크기가 동일할 경우, 픽셀 위치에 대한 상관관계는 1:1이 됩니다. 그러나 플러시 입력의 픽셀 수가 더 적을 경우(예: 한 줄당 1픽셀), 시뮬레이션은 픽셀 위치만 비교합니다.
-
플러시 조건은 하드웨어에서와 같이 객체의 완료 여부와 비교하는 것이 아니라, 객체의 Y0 좌표와 비교하여 객체를 출력합니다.
-
이미지의 마지막 객체가 출력된 후에는 그 이후의 모든 플러시 신호가 무시됩니다. 따라서 시뮬레이션에서 입력 측의 플러시 신호 수는 프레임 출력 수와 상관관계가 없습니다.
이러한 특성 때문에 시뮬레이션을 사용할 때는 주의가 필요합니다.
다음 그림들은 시뮬레이션에서 플러시 신호를 사용할 때의 몇 가지 특수한 조건을 설명하는 미니 이미지 예시들을 보여줍니다.
-
블롭 분석의 ImageI 입력은 이진 1차원 이미지, 즉 비트 폭이 1비트이고, 지정된 너비를 가지며, 높이가 무제한인 이미지로 표현됩니다. 최대 32픽셀까지 병렬 처리를 선택할 수 있습니다. 전경 값은 '1'로 간주되며, 배경 값은 반드시 '0'이어야 합니다. 이 점은 이진화 과정에서 반드시 고려되어야 합니다.
LineMarkerI 입력은 이미지 데이터 입력과 동기화되어 있으므로, 이러한 링크는 동일한 이미지 크기와 병렬성을 가져야 합니다. 그러나 링크의 비트 폭은 임의로 설정할 수 있습니다. LineMarker의 값은 각 이미지 라인 전체에 걸쳐 일정해야 합니다.
입력 링크 “FlushI”는 다른 입력 링크들과 비동기적으로 작동합니다. 이 링크는 어떤 비트 폭, 병렬 처리 방식 및 이미지 크기를 가질 수 있습니다. 병렬 구성 요소 중 어느 하나라도 입력 비트 중 하나가 설정되면, Blob Analysis 출력이 플러시됩니다.
각 출력 포트는 하나의 객체 특징/객체 속성을 나타냅니다. 이 포트들의 각 출력 값은 하나의 객체를 나타냅니다. 따라서 객체 속성들은 데이터 스트림을 형성합니다. 출력 데이터 스트림의 길이는 이미지에서 발견된 객체의 수와 같으며, 여러 개의 하위 프레임으로 나눌 수 있습니다. 각 출력 포트의 높이는 1픽셀이며, 길이는 각각 다릅니다. 이들은 그레이스케일 2D 이미지로 표현됩니다.
출력 포트는 연산자 매개변수와 입력의 속성을 사용하여 구성됩니다. 링크 속성을 직접 변경하는 것은 불가능합니다.
ErrorFlagsO 포트는 오버플로우와 관련된 여러 오류 플래그를 출력합니다. 각 비트는 특정 플래그용으로 할당되어 있습니다. 자세한 설명은 아래의 매개변수 설명에서 확인할 수 있습니다. 다음 표에는 그 요약이 나와 있습니다:
| 비트 # | 설명 | 객체 관련 | 참고 |
|---|---|---|---|
| 0, 1 | 라벨 오버플로 | no |
블롭 분석에서 메모리에 저장하기에는 너무 많은 객체가 감지되었습니다. 두 개의 이미지 라인 내 최대 객체 수를 늘리려면, “LabelBits” 연산자 매개변수를 변경할 수 있습니다. 이 플래그는 감지 시 설정되며 데이터 출력 프레임이 끝날 때까지 유지됩니다. 지금까지 출력된 모든 객체 속성은 유효합니다. Blob Analysis 1D 연산자의 경우, 이 플래그는 하나의 클럭 사이클 동안만 상위 상태를 유지하며, 다음 유효한 데이터 출력과 함께 제공됩니다. 플래그가 설정된 후, BLOB 분석 결과로 인해 객체 속성이 잘못 표시될 수 있습니다. 운영자는 충분한 객체 레이블이 확보되면 정상적인 기능으로 복귀합니다. |
| 2 | 출력 내용이 잘렸습니다 | 네 |
이미지 내 객체의 수가 연산자 매개변수 대화 상자에서 설정된 최대 출력 너비를 초과합니다. 이 플래그는 출력 너비에 들어맞는 마지막 객체와 함께 설정됩니다. |
| 3 | 객체 크기가 최대치를 초과합니다 | 네 |
1차원 블롭 분석의 객체가 최대 높이를 초과하면 이 플래그가 설정됩니다. 연산자는 이 초과한 객체를 더 작은 객체들로 분할합니다. 분할된 객체에는 분할을 감지할 수 있도록 이 플래그가 표시됩니다. 2D 블롭 분석의 경우, 이 플래그는 항상 0으로 설정됩니다. |
| 4 | 영역이 잘려 있습니다 | 네 |
오류 플래그를 포함한 객체의 크기가 영역 비트가 허용하는 크기보다 큽니다. |
| 5 | 질량중심 X가 잘려 나갔다 | 네 |
X 방향의 무게 중심이 비트가 허용하는 범위보다 큽니다. . |
| 6 | 중심 Y가 잘려 나갔다 | 네 |
Y 방향의 무게 중심이 비트가 허용하는 범위보다 큽니다. |
| 7 | 등고선 길이 오버플로우 | 네 |
등고선 길이가 연산자에 대해 매개변수화된 비트 수보다 큽니다. |
표 38. Blob 오류 플래그 설명
| Property | Value |
|---|---|
| Operator Type | M |
| Input Links | ImageI, 이미지 데이터 입력 LineMarkerI, 데이터 입력 FlushI, 데이터 입력 |
| Output Links | LineMarkerO, 데이터 출력 BoundingX0O, 데이터 출력 BoundingX1O, 데이터 출력 BoundingY0O, 데이터 출력 BoundingY1O, 데이터 출력 AreaO, 데이터 출력 CenterXO, 데이터 출력 CenterYO, 데이터 출력 ContourOrthoO, 데이터 출력 ContourDiaO, 데이터 출력 ErrorFlagsO, 데이터 출력 |
동기식 및 비동기식 입력
- 동기 그룹: ImageI, LineMarkerI
- FlushI는 해당 그룹과 비동기적으로 작동합니다.
| label_bits | |
|---|---|
| Type | static parameter |
| Default | 7 |
| Range | [5, 31] |
|
이 매개변수는 객체에 내부적으로 라벨을 부여하는 데 사용되는 비트 수를 설정합니다. 또한 2^label_bits로 결정되는 두 이미지 라인 내에 공존할 수 있는 객체의 최대 개수에도 영향을 미칩니다. 블롭 분석에 필요한 메모리 자원은 비트가 하나 추가될 때마다 거의 두 배로 증가한다는 점에 유의하십시오. 이 매개변수의 적절한 값 범위는 7~9비트이며, 이는 거의 모든 응용 프로그램에 충분할 것입니다. 이 주소 공간의 오버플로가 감지되면, 오퍼레이터는 포트 "ErrorFlagsO"의 0번 및 1번 비트에 오류 플래그를 출력합니다. 이 플래그들은 오버플로가 감지되면 설정되며, 출력 프레임이 끝남과 동시에 리셋됩니다. |
|
| 동네 | |
|---|---|
| Type | static parameter |
| Default | eight_connected |
| Range | {4개 연결, 8개 연결} |
|
물체 탐지를 위해 필요한 인접 영역을 선택합니다. 픽셀 인접 영역에 대한 자세한 설명은 '정의'를 참조하십시오. |
|
| max_object_height_bits | |
|---|---|
| Type | static parameter |
| Default | 10 |
| Range | [3, 31] |
|
이 매개변수는 오브젝트의 최대 높이를 지정하는 데 필요합니다. 예를 들어, 높이를 10비트로 설정하면 오브젝트의 높이가 1024 이미지 라인을 초과할 수 없습니다. 객체가 이 제한을 초과하는 경우, 해당 객체는 두 개 이상의 별개의 객체로 분할됩니다. 이 경우, 재개된 객체와 함께 포트 ErrorFlagsO의 3번 비트에 있는 오류 플래그가 설정됩니다. |
|
| max_output_frame_size | |
|---|---|
| Type | static parameter |
| Default | 65536 |
| Range | [1, 67108864] |
|
최대 출력 프레임 크기, 즉 하나의 출력 프레임에 포함될 수 있는 객체의 최대 개수를 선택합니다. |
|
| 출력 프레임 크기 오버플로 처리 | |
|---|---|
| Type | static parameter |
| Default | generate_new_frame |
| Range | {새 프레임 생성, 초과 객체 제거} |
|
최대 출력 프레임 크기는 매개변수 "max_output_frame_size"로 지정됩니다. 객체 수가 이 크기를 초과할 경우, 연산자는 새 프레임을 생성하거나 초과된 객체를 버릴 수 있습니다. 새로운 프레임을 생성하면 프레임 종료가 발생하며, 즉 프레임이 완료됩니다. 객체가 제거되는 경우, 오퍼레이터는 포트 ErrorFlagsO의 2번 비트에 오류 플래그를 설정하고, 프레임의 마지막 유효 객체를 함께 출력합니다. 플러시 입력이 발생하면 새로운 프레임도 생성된다는 점에 유의하십시오. |
|
| 빈 출력 프레임 억제 | |
|---|---|
| Type | static parameter |
| Default | 네 |
| Range | {yes, no} |
|
이 매개변수는 플러시 상황이나 객체 데이터가 없는 경우로 인해 발생하는 빈 출력 프레임을 억제하는 데 사용됩니다. 자세한 타이밍 다이어그램은 ‘출력 프레임 생성 - 플러시, 빈 프레임, 데이터 폐기’에서 확인할 수 있습니다 . |
|
| line_marker | |
|---|---|
| Type | static parameter |
| Default | 중고 |
| Range | {사용됨, 미사용} |
|
각 객체의 “line_marker”는 “LineMarkerO”로 출력됩니다. 비트 폭은 입력 링크인 LineMarkerI에 의해 결정됩니다. 라인 마커를 사용하지 않는 경우, 비트 폭은 1로 설정되며 출력값은 0으로 고정됩니다. |
|
| bounding_box_x0 | |
|---|---|
| Type | static parameter |
| Default | 중고 |
| Range | {사용됨, 미사용} |
|
바운딩 박스는 객체를 완전히 감싸는 최소의 준축 방향 직사각형을 나타냅니다. 각 좌표 값은 이미지의 왼쪽 상단 모서리를 기준으로 합니다. 바운딩 박스의 X0는 각 객체의 가장 낮은 x 좌표를 나타내며, 이는 “BoundingX0O”에서 출력됩니다. 비트 폭은 입력 이미지에 따라 결정됩니다. 바운딩 박스를 사용하지 않는 경우, 비트 폭은 1비트로 설정되며 출력값은 상수 0으로 설정됩니다. |
|
| bounding_box_x1 | |
|---|---|
| Type | static parameter |
| Default | 중고 |
| Range | {사용됨, 미사용} |
|
바운딩 박스는 객체를 완전히 감싸는 최소의 준축 방향 직사각형을 나타냅니다. 각 좌표 값은 이미지의 왼쪽 상단 모서리를 기준으로 합니다. 바운딩 박스 X1은 각 객체의 가장 높은 x 좌표를 나타냅니다. 이는 "BoundingX1O"에서 출력됩니다. 비트 폭은 입력 이미지에 따라 결정됩니다. 바운딩 박스가 사용되지 않는 경우, 비트 폭은 1비트로 설정되며 출력값은 상수 0으로 유지됩니다. |
|
| bounding_box_y0 | |
|---|---|
| Type | static parameter |
| Default | 중고 |
| Range | {사용됨, 미사용} |
|
바운딩 박스의 y0는 각 객체의 가장 낮은 y 좌표를 나타냅니다. 이 좌표는 연산자의 내부 카운터를 기반으로 합니다. 카운터는 처리된 첫 번째 이미지 라인부터 카운팅을 시작합니다. 최대값은 max_object_height_bits 매개변수로 설정된 최대 높이와 같습니다. 오버플로가 발생하면, 카운터는 다시 0부터 시작합니다. 이 기능은 선 마커 대신 사용할 수 있습니다. 하지만 선 마커는 더 다양한 기능을 제공하며 복잡한 구성도 가능합니다. 이 기능은 “BoundingY0O”에서 출력됩니다. 비트 폭은 입력 이미지에 따라 결정됩니다. 바운딩 박스가 사용되지 않는 경우, 비트 폭은 1로 설정되며 출력값은 항상 0으로 유지됩니다. |
|
| bounding_box_y1 | |
|---|---|
| Type | static parameter |
| Default | 중고 |
| Range | {사용됨, 미사용} |
|
1D 연산자에서는 (2D 연산자와는 달리) 바운딩 박스의 y1 값이 객체의 높이를 나타냅니다. 이 값은 “BoundingY1O”에서 출력됩니다. 비트 폭은 입력 이미지에 따라 결정됩니다. 바운딩 박스를 사용하지 않는 경우, 비트 폭은 1로 설정되며 출력값은 상수 0이 됩니다. |
|
| area_mode | |
|---|---|
| Type | static parameter |
| Default | 필요 비트 수가 최대인 영역 사용 |
| Range | {사용되지 않는 영역, 필요한 최대 비트 수를 가진 영역 사용, 지정된 비트 수를 가진 영역 사용} |
|
객체의 면적은 모든 객체 전경 픽셀의 합으로 정의됩니다. 이 매개변수는 필요한 영역 모드를 선택하는 데 사용됩니다. 만약 "use_area_with_maximum_required_bits"가 선택되면, 연산자는 객체의 가능한 최대 크기에 필요한 비트 수를 자동으로 결정합니다. 객체의 최대 가능 크기는 입력 링크 I의 최대 너비 및 높이에 따라 달라집니다. 객체의 이론적 최대 크기는 이미지의 모든 픽셀이 전경 값으로 구성될 때, 즉 하나의 거대한 객체로 이루어진 흰색 입력 이미지일 때 달성됩니다. 사용자가 객체의 면적이 지정된 값보다 크지 않을 것이라고 확신할 수 있다면, 이를 매개변수로 설정할 수 있습니다. 최대 객체 크기가 알려진 경우 "use_area_with_specified_bits"를 선택하십시오. 매개변수 "area_bits"를 사용하여 비트 수를 지정하십시오. 면적이 전혀 필요하지 않은 경우, "area_not_used"를 선택하십시오. "area_not_used" 모드에서는 비트 폭이 1로 설정되며, 출력은 일정한 0을 반환합니다. |
|
| area_bits | |
|---|---|
| Type | static parameter |
| Default | 사용되지 않음 |
| Range | {사용되지 않음, 사용됨} |
|
이 매개변수는 “area_mode” 매개변수가 “use_area_with_specified_bits”로 설정된 경우에만 활성화됩니다. 객체의 면적이 선택된 비트가 허용하는 범위를 초과하면, 블롭 분석은 출력 링크 “ErrorFlagsO”의 4번 비트에 출력 링크 "ErrorFlagsO"의 4번 비트에 오버플로 플래그를 출력합니다. |
|
| 중심점_x_모드 | |
|---|---|
| Type | static parameter |
| Default | use_cX_with_maximum_required_bits |
| Range | {cX_not_used, use_cX_with_maximum_required_bits, use_cX_with_specified_bits} |
|
‘중심’에 대한 설명은 ‘중심’ 항목을 참조하십시오. 중심. 정확한 결과를 얻으려면 출력값을 블롭 분석 후의 면적으로 나누어 야 한다는 점에 유의하십시오. 매개변수가 "use_cX_width_maximum_required_bits"로 설정된 경우, 연산자는 출력 비트 수를 자동으로 결정합니다. 큰 크기의 입력 이미지를 사용할 경우 필요한 비트 수가 매우 많아질 수 있습니다. 매개변수 값으로 "use_cX_with_specified_bits"를 사용할 경우 비트 수를 조정할 수 있습니다. x 방향의 무게 중심이 필요하지 않은 경우, “cX_not_used”를 선택하여 이 기능을 비활성화할 수 있습니다. |
|
| 중심점_x_비트 | |
|---|---|
| Type | static parameter |
| Default | 29 |
| Range | [2, 자동] |
|
"center_of_gravity_x_mode"에 "use_cX_with_specified_bits"가 설정된 경우, 여기에서 비트를 변경할 수 있습니다. 그렇지 않은 경우, 이 매개변수는 비활성화됩니다. |
|
| 중심점_x_오버플로우_플래그 | |
|---|---|
| Type | static parameter |
| Default | 사용되지 않음 |
| Range | {사용되지 않음, 사용됨} |
|
x 방향의 무게중심에 대한 비트 수가 수동으로 설정된 경우, 이 매개변수가 활성화되며 “사용”으로 설정할 수 있습니다. 이때 오버플로가 감지되면 운영자는 출력 링크 “ErrorFlagsO”의 5번 비트에 1을 출력합니다. |
|
| 중심_y_모드 | |
|---|---|
| Type | static parameter |
| Default | 최대 필요 비트 수를 사용하는 cY |
| Range | {cY_not_used, use_cY_with_maximum_required_bits, use_cY_with_specified_bits} |
|
‘중심’에 대한 설명은 ‘중심’ 항목을 참조하십시오. 중심. 정확한 결과를 얻으려면 출력값을 블롭 분석 후의 면적으로 나누어 야 한다는 점에 유의하십시오. 매개변수가 "use_cY_width_maximum_required_bits"로 설정된 경우, 연산자는 출력 비트 수를 자동으로 결정합니다. 큰 크기의 입력 이미지를 사용할 경우 필요한 비트 수가 매우 많아질 수 있습니다. 매개변수 값으로 "use_cY_with_specified_bits"를 사용하면 비트 수를 조정할 수 있습니다. y 방향의 무게중심이 필요하지 않은 경우, “cY_not_used”를 선택하여 이 기능을 비활성화할 수 있습니다. |
|
| 중심점_y_비트 | |
|---|---|
| Type | static parameter |
| Default | 29 |
| Range | [2, 자동] |
|
"center_of_gravity_y_mode"에 대해 "use_cY_with_specified_bits"가 설정된 경우, 여기에서 비트 값을 변경할 수 있습니다. 그렇지 않은 경우, 이 매개변수는 비활성화됩니다. |
|
| 중심점_y_오버플로우_플래그 | |
|---|---|
| Type | static parameter |
| Default | 사용되지 않음 |
| Range | {사용되지 않음, 사용됨} |
|
y 방향의 무게중심에 대한 비트 수가 수동으로 설정된 경우, 이 매개변수가 활성화되며 “사용”으로 설정할 수 있습니다. 이때 오버플로가 감지되면 운영자는 출력 링크 “ErrorFlagsO”의 6번 비트에 1을 출력합니다. |
|
| 등고선 길이 모드 | |
|---|---|
| Type | static parameter |
| Default | contour_length_not_used |
| Range | {등고선 길이 미사용, 등고선 길이 사용} |
|
객체의 윤곽 길이는 구멍이 있는 부분의 모서리까지 모두 포함합니다. 자세한 설명은 ‘윤곽 길이’를 참조하십시오 . 이 기능을 선택하면, 선택한 이웃 영역에 따라 "contour_length_bits_orthogonal_connected" 및 "contour_length_bits_diagonal_connected" 매개변수를 사용하여 필요한 비트 수를 선택할 수 있습니다. 4-연결 이웃 영역이 선택된 경우, 등고선 길이는 직교 방향에서만 결정될 수 있습니다. 8-연결 이웃 영역이 선택된 경우 등고선 길이는 직교 방향과 대각선 방향 모두에서 결정됩니다. |
|
| 직교 연결 영역의 등고선 길이 비트 수 | |
|---|---|
| Type | static parameter |
| Default | 16 |
| Range | [1, 31] |
|
"contour_length_mode"가 "contour_length_used"로 설정된 경우, 직교로 연결된 픽셀의 윤곽 길이를 표현하는 데 필요한 비트 수를 여기서 선택할 수 있습니다. |
|
| 대각선 연결 구간의 둘레 길이 비트 수 | |
|---|---|
| Type | static parameter |
| Default | 16 |
| Range | [1, 31] |
|
"contour_length_mode"가 "contour_length_used"로 설정된 경우, 대각선으로 연결된 픽셀의 윤곽 길이를 표현하는 데 필요한 비트 수를 여기서 선택할 수 있습니다. 이는 8-연결 이웃이 선택된 경우에만 가능합니다. 그 외의 경우에는 이 매개변수가 비활성화됩니다. |
|
| 등고선 길이 오버플로 플래그 | |
|---|---|
| Type | static parameter |
| Default | 사용되지 않음 |
| Range | {사용되지 않음, 사용됨} |
|
컨투어 길이로 인해 오버플로가 발생할 수 있습니다. 이 플래그를 사용하는 경우, 오버플로가 발생하면 포트 “ErrorFlagsO”의 7번 비트에 오류 플래그가 설정됩니다. |
|
다음 예제에서는 Blob_Analysis_1D 연산자의 사용법을 보여줍니다:
-
Examples - 라인 스캔 애플리케이션에서 Blob_Analysis_1D operator 사용법을 보여줍니다.

![[참고]](../common/images/admon/note.png)






![[경고]](../common/images/admon/warning.png)

























이전

