Operator Library: Blob
BlobDetector1D 연산자는 높이가 제한되지 않는 이진 이미지에서 객체를 감지하고 해당 속성을 판별합니다. 이 연산자의 출력은 각 객체의 속성을 나타내는 여러 데이터 스트림입니다.
이 연산자의 기능은 VisualApplets에서 완전히 시뮬레이션할 수 있습니다.
Library Blob 소개도 함께 참조하세요.
BlobDetector1D는 BoundingBox, Area 및 Center of Gravity X와 Y 기능을 제공합니다.
![]() |
Center of Gravity X와 Y는 연산자의 직접적인 출력이 아닙니다. |
|---|---|
|
출력 포트 CenterX와 CenterY는 실제로 이미지 모멘트 M10 (CenterX)과 M01 (CenterY)을 제공합니다. 객체의 무게 중심을 추출하려면 모멘트를 추출된 면적으로 나누어야 합니다:
|
BlobDetector1D 연산자는 무한한 단일원 이미지용으로 설계되었습니다. 일반적으로 1D 블롭 분석의 경우 Bounding Box 및 Center of Gravity Y 객체 기능은 이미지의 좌상단 모서리에 원점이 있는 객체의 위치와 관련이 있습니다. 무한한 양의 라인을 인덱싱하는 것은 불가능하므로 작동 중 특정 시점에 Y 좌표 오버플로가 발생합니다. Y 좌표 오버플로가 발생하는 라인은 LineCountBits 파라미터로 제어됩니다. 매 2^LineCountBits 라인마다 Y 좌표가 0으로 재설정됩니다. 예를 들어 LineCountBits = 10인 경우 최대 Y 좌표는 1023(= 2^10-1)입니다. 다음 라인에는 Y 좌표 = 0이 할당됩니다. 이 제약 사항은 Bounding Box, Area 및 Center of Gravity X 기능에는 문제가 되지 않지만 Center of Gravity Y 값은 Y 좌표 오버플로의 영향을 받습니다. 객체가 오버플로 한계를 넘어 확장되면 아래 그래픽과 같이 Center of Gravity Y 값이 손상됩니다. 이 그래픽에서 전경은 색상으로 표시되어 있습니다.
![]() |
손상된 Center of Gravity Y 값은 자동으로 감지되지 않음 |
|---|---|
|
Y 좌표 경계에 걸쳐 있는 객체의 경우 손상된 Center of Gravity Y 값이 자동으로 감지되지 않습니다. |
입력 이미지는 연산자에 의해 라인 단위로 처리됩니다. 연산자는 미래를 예측할 수 없으므로 나중에 연결되는 영역이 처음에는 독립적으로 보일 수 있습니다. 따라서 이 텍스트에서는 단일 라인 내의 연결된 픽셀을 object artifacts라고 부릅니다. BlobDetector1D 연산자는 이러한 객체 아티팩트가 다음 라인의 다른 객체 아티팩트와 겹치는지 확인합니다. 이는 객체가 실제로 독립적인지 아니면 더 큰 객체의 일부인지 판별하기 위함입니다. 연산자가 처리할 수 있는 객체 아티팩트의 최대 수는 LabelCount 파라미터로 정의됩니다. 객체 아티팩트 수가 LabelCount 값을 초과하면 데이터가 손실되고 객체 결과의 무결성이 더 이상 보장되지 않습니다. 이를 context corruption이라고 합니다. 데이터가 손실된 라인은 ErrorFlag로 식별할 수 있는 Line Error 더미 객체로 표시됩니다. 손상된 컨텍스트 내의 모든 후속 객체에도 이와 같이 플래그가 지정됩니다. 컨텍스트 손상은 앱들을 플러싱하거나 앱들을 다시 시작하여 컨텍스트를 재설정하면 종료됩니다. 모든 오류 플래그는 'Output Ports' 섹션에 나열되어 있습니다.
대부분의 경우 컨텍스트 손상을 방지하는 데 필요한 레이블 수는 라인 내 객체 아티팩트의 최대 수와 같습니다. neighborhood = 4 및 neighborhood = 8의 경우 필요한 정확한 레이블 수가 약간 다릅니다:
-
neighborhood = 4의 경우 컨텍스트 손상을 방지하는 데 필요한 레이블 수는 N 라인의 X 위치에 있는 모든 픽셀과 N+1 라인의 X 위치에 있는 픽셀 간의 객체 아티팩트 최대 수와 같습니다.
-
neighborhood = 8의 경우 컨텍스트 손상을 방지하는 데 필요한 레이블 수는 N 라인의 X 위치에 있는 모든 픽셀과 N+1 라인의 X+1 위치에 있는 픽셀 간의 객체 아티팩트 최대 수와 같습니다.
선택한 레이블 양이 사용 사례에 충분한지 확실하지 않은 경우 시뮬레이션에서 확인하십시오.
BlobDetector1D 모듈을 인스턴스화할 때 생성할 출력 포트를 정의할 수 있습니다. 포트를 활성화/비활성화하면 해당 기능도 자동으로 활성화/비활성화됩니다. 이러한 포트를 확인한 후에는 더 이상 변경할 수 없습니다. 다른 출력 포트가 필요한 경우 다른 BlobDetector1D 모듈을 인스턴스화해야 합니다.
2D 이미지 형식은 프레임 종료로 인해 객체를 출력하는 데 내장된 최대 대기 시간이 있지만 1D 이미지의 객체는 끝에 도달하지 못할 수도 있습니다. 특정 시간 내에 객체에 반응해야 할 수 있으므로 바운딩 박스 높이나 기타 피처 데이터가 오버플로에 도달할 경우 최대 바운딩 박스 높이뿐만 아니라 피처 데이터의 조기 출력을 정의할 수 있습니다. 이러한 출력을 overflow events라고 하며 ErrorFlagsO 링크로 표시됩니다. 연산자 속성에서 오버플로 이벤트를 활성화 또는 비활성화할 수 있습니다. 피처에 오버플로가 발생하고(그리고 해당 OverflowEvent 파라미터가 활성화된 경우) 객체는 중간 상태로 출력됩니다. 객체는 내부적으로 계속 처리되며 진행됩니다. 출력은 단순히 제공된 객체의 중간 결과일 뿐입니다.
아래 그림은 오버플로 이벤트 처리를 시각화한 것입니다. 전경은 파란색으로 채워져 있으며 '>' 기호는 오버플로 이벤트가 감지되는 위치를 나타냅니다. grayscale은 최대 BoundingBox 높이를 초과하는 순간에 트리거되므로 중간 객체의 실제 높이는 MaxBoundingBoxHeight + 1입니다. 이 때문에 바운딩 박스의 높이가 7로 표시되는 반면 객체의 피처 값은 1을 출력합니다.
블롭 검출기 연산자는 처리 속도, 즉 대역폭이 이미지 콘텐츠에 따라 달라지는 몇 안 되는 연산자 중 하나입니다. 이 연산자는 응집된 라인 내에서 전경 픽셀과 배경 픽셀 간의 변화가 거의 없는 이미지에서 가장 잘 작동합니다. 따라서 여러 라인 내에 노이즈나 많은 수의 객체 아티팩트가 있으면 데이터 처리량이 눈에 띄게 느려집니다. 하지만 이는 노이즈가 매우 심한 이미지에만 적용됩니다.
이 연산자는 입력 이미지를 라인 단위로 처리하여 최소한의 대기 시간으로 작동합니다. 객체의 끝이 명확해지면 연산자가 즉시 객체 기능을 출력으로 제공합니다. 따라서 객체의 출력은 객체가 끝나는 동일한 라인에서 이루어집니다. 이를 통해 연산자가 다음 컨텍스트를 계속 처리하는 동안 완료된 객체 기능을 후속 처리할 수 있습니다.
DMA 및 일부 다른 연산자는 완료를 보고하기 전에 프레임 종료 신호를 기다린다는 점에 유의하세요.
연산자의 리소스 소비는 활성화된 기능, 기능에 사용되는 비트 수, 선택한 레이블 수에 따라 달라집니다. 따라서 Basler는 필요하지 않은 기능을 비활성화하고 LabelCount 파라미터를 설정할 때 주의할 것을 권장합니다.
![]() |
Bounding Box 포트 일부 비활성화는 리소스를 절약하지 않음 |
|---|---|
|
Bounding box에는 여러 개의 출력 포트가 있으므로, 모든 포트가 비활성화된 경우에만 해당 기능이 비활성화됩니다. Bounding box 포트를 일부만 비활성화하는 것은 리소스를 절약하지 않습니다. |
![]() |
최대값을 수동으로 설정하면 리소스가 절약됨 |
|---|---|
|
리소스 절약 및 디자인 처리 향상을 위해, 감지할 객체의 최대값을 알고 있는 경우 Basler에서는 링크의 Bit Width를 수동으로 설정할 것을 권장합니다. |
Blob detector의 ImageI 입력은 바이너리(픽셀 bit width 1) 1D 이미지를 필요로 합니다. 이 오퍼레이터는 동작 시간 동안 다양한 라인 길이뿐만 아니라 빈 라인(empty line)의 입력도 지원합니다.
이 오퍼레이터는 전경(foreground) 값이 ONE이고 배경(background) 값이 ZERO일 것으로 가정합니다. 사전 이진화(binarization) 과정에서 이 요구 사항이 충족되도록 하십시오.
BlobDetector1D 오퍼레이터에는 ImageI와 동기화되는 추가 입력 링크 FlushI가 있습니다. FlushI는 활성 컨텍스트를 종료하며, 즉 가상 End of Frame처럼 작동합니다. 이 종료는 FlushI 포트의 수신 픽셀 중 하나라도 '1'인 경우 트리거되며 라인 끝에서 발생합니다. Flush는 다음 라인부터 시작하여 blob 검출을 다시 시작하며, Y 좌표도 0으로 재설정합니다. Flush 명령으로 인해 출력되는 모든 객체는 ErrorFlagsO 링크의 14번 비트로 명확하게 플래그 지정됩니다. 이와 더불어, ContextTermination 객체가 flush가 발행된 라인의 맨 마지막 객체로 출력됩니다(ErrorFlagsO 링크의 15번 비트로 플래그 지정됨). ContextTermination은 유용한 feature 데이터를 보유하지 않는 더미 객체입니다.
BlobDetector1D 오퍼레이터의 동작은 아래 그림에 나와 있습니다. 전경 픽셀('1')은 파란색으로 표시됩니다. '>'는 객체가 출력되는 라인을 나타냅니다. 객체의 이름 지정은 출력 링크 ErrorFlagsO에 존재하는 설정된 태그에 해당합니다.
출력은 VALT_LINE1D 이미지 형식으로 표현됩니다. 각 출력 포트는 하나의 객체 feature / 객체 property를 나타냅니다. 이들은 동기화되어 있으며 함께 하나의 단일 객체를 설명합니다. 각 출력 픽셀은 완료된 객체 또는 오류 상태 객체의 값을 제공합니다. 이 출력이 추출된 객체인지 오류 상태 객체인지 여부는 ErrorFlagsO 출력 포트에 의해 표시됩니다. 객체를 나타내는 픽셀은 해당 객체가 완료된 동일한 라인에 나타납니다. 이들은 완료된 순서대로 출력됩니다. 예를 들어, 두 객체가 라인 10에서 끝납니다. 객체 A의 마지막 픽셀은 X 좌표 42를 가지며, 객체 B의 마지막 픽셀은 X 좌표 97을 가집니다. 따라서 객체 A는 오퍼레이터의 출력 포트에서 첫 번째 픽셀이고 객체 B는 두 번째 픽셀입니다. 완료된 객체가 없고 오류가 발생하지 않은 라인은 비어 있습니다.
feature 데이터의 오버플로우를 방지하기 위해 제공된 입력 형식을 기반으로 출력 포트의 폭이 자동으로 조정됩니다. 또는 출력 포트의 폭을 수동으로 구성할 수도 있습니다. 링크 bit width의 수동 구성은 오퍼레이터 property에서 Area / CenterX / CenterY를 활성화한 경우에 사용할 수 있습니다.
포트 ErrorFlagsO는 오버플로우 또는 추가 정보 태그에 대한 여러 오류 플래그를 출력합니다. 각 비트는 특정 플래그용으로 예약되어 있습니다. 하드웨어의 런타임 환경 또는 시뮬레이션에서 이러한 오류 플래그를 확인할 수 있습니다. 시뮬레이션에서 이러한 오류 플래그를 확인하려면:
-
BlobDetector1D의 ErrorFlagsO 포트에 시뮬레이션 프로브를 추가합니다.
-
오버플로우를 유발하는 이미지를 시뮬레이션에 추가합니다.
-
시뮬레이션을 실행합니다.
-
출력 포트의 를 엽니다.
-
검사하려는 픽셀로 스크롤하고, 확대하여 픽셀 값을 확인한 후 픽셀 값을 다음으로 설정합니다. :
-
hex 값 내의 활성 비트는 blob 객체와 관련된 다양한 오류 또는 상태 정보를 나타냅니다. 자세한 내용은 아래 표를 확인하십시오.
오류 플래그에 대한 자세한 설명은 아래 파라미터 설명에서 확인하실 수 있습니다. 요약은 다음 표에 나와 있습니다.
| Bit # | 설명 | 참고 사항 |
|---|---|---|
| 0 | Area 오버플로우 |
객체의 Area 값이 처리 과정 중 특정 시점에서 제공된 출력 bit width를 초과했습니다. |
| 1 | Area OverflowEvent |
처리 과정에서 객체의 Area 값이 제공된 출력 bit width를 초과했습니다. 생성된 객체는 오버플로우가 발생한 라인을 표시합니다. |
| 2 | CenterX Overflow |
처리 과정 중 특정 시점에서 객체의 CenterX 값(이미지 모멘트 M10)이 제공된 출력 bit width를 초과했습니다. |
| 3 | CenterX OverflowEvent |
처리 과정에서 객체의 CenterX 값(이미지 모멘트 M10)이 제공된 출력 bit width를 초과했습니다. 생성된 객체는 오버플로우가 발생한 라인을 표시합니다. |
| 4 | CenterY Overflow |
처리 과정 중 특정 시점에서 객체의 CenterY 값(이미지 모멘트 M01)이 제공된 출력 bit width를 초과했습니다. |
| 5 | CenterY OverflowEvent |
처리 과정에서 객체의 CenterY 값(이미지 모멘트 M01)이 제공된 출력 bit width를 초과했습니다. 생성된 객체는 오버플로우가 발생한 라인을 표시합니다. |
| 6 | BoundingBox HeightViolation |
처리 과정 중 특정 시점에서 BoundingBox의 높이가 객체에 대해 설정한 파라미터 값 MaxBoundingBoxHeight를 초과했습니다. |
| 7 | BoundingBox HeightViolationEvent |
처리 과정에서 BoundingBox의 높이가 객체에 대해 설정한 파라미터 값 MaxBoundingBoxHeight를 초과했습니다. 생성된 객체는 높이 위반이 감지된 라인을 표시합니다. |
| 8-11 | 예비 |
향후 확장을 위해 예약되어 있습니다. |
| 12 | Line Error |
선택한 레이블 수로 처리할 수 있는 것보다 더 많은 객체 아티팩트가 발생한 라인을 나타내는 더미 객체를 나타냅니다. 사용 가능한 memory가 부족하여 들어오는 데이터를 더 이상 처리할 수 없습니다. 이는 더미 객체이므로 다른 포트의 피처 데이터 값에는 유용한 데이터가 포함되어 있지 않습니다. 시뮬레이션에서는 피처 값이 0으로 표시되지만 하드웨어에서는 어떤 값으로든 지정될 수 있습니다. 하위 ErrorBits 7-0이 활성화된 피처 및 해당 값에 연결되어 있으므로, 이러한 플래그는 시뮬레이션과 하드웨어에서 서로 다를 수 있습니다. 이 에러 플래그가 존재할 경우, 항상 라인의 첫 번째 객체 출력입니다. |
| 13 | ContextCorruption |
선택한 레이블 수로 처리할 수 있는 것보다 더 많은 객체 아티팩트가 발생했습니다. 들어오는 모든 데이터를 처리하기에는 사용 가능한 memory가 충분하지 않습니다. 플래그가 지정된 객체의 무결성을 보장할 수 없습니다. 컨텍스트가 종료되거나(예: 플러시에 의해 트리거됨) 디자인에서 빌드한 HAP 파일을 여는 애플리케이션을 다시 시작하면 오퍼레이터가 올바른 기능으로 복원됩니다. 다음 라인부터는 이전 컨텍스트 손상의 영향 없이 컨텍스트가 처리됩니다. |
| 14 | FlushedLine |
플러시에 의한 강제 컨텍스트 종료로 인해 플래그가 지정된 객체가 출력됩니다. |
| 15 | ContextTermination |
플러시가 트리거된 라인 내에서 컨텍스트의 끝을 표시하는 더미 객체를 나타냅니다. 더미 객체이므로 다른 포트의 Property 데이터에는 유용한 데이터가 포함되어 있지 않습니다. 시뮬레이션에서는 Property 값이 0으로 표시되지만, 하드웨어에서는 어떤 값이든 될 수 있습니다. 활성화된 Property 및 해당 값에 하위 ErrorBits 7-0이 연결되어 있으므로, 이러한 플래그는 하드웨어와 시뮬레이션 간에 다를 수 있습니다. 이 더미 객체 뒤에 출력되는 모든 객체는 새 컨텍스트의 일부입니다. |
표 36. Blob Error Flags 설명
| Property | Value |
|---|---|
| Operator Type | M |
| Input Links | ImageI, data input FlushI, data input |
| Output Links | BoundingX0O, data output BoundingX1O, data output BoundingY1O, data output BoundingHeightO, data output AreaO, data output CenterXO, data output CenterYO, data output ErrorFlagsO, data output |
|
Bit Width은 ImageI 링크로 들어오는 최대 이미지 Width을 기반으로 합니다. 다음과 같이 계산됩니다. |
|
|
Bit Width은 LineCountBits 파라미터로 정의됩니다. |
|
|
Bit Width은 다음 파라미터에서 파생됩니다.
MaxBoundingBoxHeight. 다음과 같이 계산됩니다.
|
|
|
AreaBitWidthMode, CenterXBitWidthMode, CenterYBitWidthMode 파라미터를 통해 링크를 수동으로 구성할지 자동 모드를 사용할지 선택할 수 있습니다. 링크를 수동으로 편집하는 경우 허용되는 범위는 [1, 48]입니다. |
|
|
최대 이미지 Width은 LabelCount + 2 파라미터와 같습니다. |
| LabelCount | |
|---|---|
| Type | static parameter |
| Default | 100 |
| Range | [1, (max. Img Width(Input Link I) / 2 + 2] |
|
내부적으로 부분 객체를 추적하기 위해 이 파라미터는 사용 가능한 Label 수를 설정합니다. 또한 한 라인에 출력될 수 있는 최대 객체 수도 결정합니다. Blob_Detector_1D 오퍼레이터에 필요한 리소스는 Label 수에 따라 다릅니다. 이 파라미터의 권장 값 범위는 100~500 사이이며, 대부분의 애플리케이션에 충분합니다. 선택한 Label 수보다 많은 부분 객체가 발생하면 데이터가 손실되고 프레임 컨텍스트가 손상됩니다. 이 경우 출력 링크 ErrorFlagsO의 비트 13이 '1'로 설정되어 제공된 데이터를 더 이상 신뢰할 수 없음을 나타냅니다. 에러 비트는 데이터 손실이 감지될 때 설정되며 플러시 또는 획득 재시작에 의해 리셋됩니다. |
|
| Neighborhood | |
|---|---|
| Type | static parameter |
| Default | EightConnected |
| Range | {FourConnected, EightConnected} |
|
이 파라미터는 object detection에 필요한 인접 영역을 선택합니다. 픽셀 인접 영역에 대한 자세한 설명은 'Definition'을 참조하십시오. |
|
| LineCountBits | |
|---|---|
| Type | static parameter |
| Default | 10 |
| Range | [1, 24] |
|
이 파라미터는 들어오는 라인의 내부 인덱싱에 사용되는 비트 수를 정의합니다. Y 좌표는 다음 인덱스에서 재설정됩니다
|
|
| MaxBoundingBoxHeight | |
|---|---|
| Type | static parameter |
| Default | 256 |
| Range | [1, 2^24] |
|
이 파라미터는 객체 바운딩 박스의 최대 허용 높이, 즉 바운딩 박스가 걸쳐 있는 최대 라인 수를 정의합니다. 바운딩 박스의 높이가 MaxBoundingBoxHeight 값을 초과하면 높이가 1부터 다시 시작되고 해당 객체는 HeightViolation 태그(즉, ErrorFlagsO의 비트 6)로 표시됩니다. |
|
| GenerateBoundingBoxHeightViolationEvents | |
|---|---|
| Type | static parameter |
| Default | true |
| Range | {true, false} |
|
객체의 바운딩 박스 높이가 MaxBoundingBoxHeight 파라미터의 값을 초과하면, 해당 객체는 중간 상태로 출력됩니다. 객체는 내부적으로 계속 처리되고 진행되지만, 출력된 결과는 해당 객체의 중간 결과일 뿐입니다. HeightViolation 이벤트로 인해 출력된 객체에는 ErrorFlagsO의 비트 7이 태그로 지정됩니다. |
|
| AreaBitWidthMode | |
|---|---|
| Type | static parameter |
| Default | AutomaticContextMaximum |
| Range | {AutomaticContextMaximum, LinkManuallyEditable} |
|
객체의 면적은 모든 객체 전경 픽셀의 합으로 정의됩니다. 경우 AutomaticContextMaximum 이(가) 선택되면 오퍼레이터는 객체의 최대 크기에 대한 비트를 자동으로 설정합니다. 1D 이미지에는 실제 최대 높이가 없으므로 최대 높이
객체의 최대 가능한 크기를 알 수 있거나 특정 크기의 객체만 중요한 경우, Basler에서는 LinkManuallyEditable 모드를 사용할 것을 권장합니다. 이렇게 하면 리소스가 절약되고 전체 디자인의 빌드 시간이 향상됩니다. LinkManuallyEditable 모드에서는 허용 범위 [1, 48] 내에서 링크의 bit width Property를 편집할 수 있습니다. 링크의 bit width는 Area 기능을 계산하는 데 내부적으로 사용되는 bit width에 직접 반영되므로 전체 리소스 소비에 영향을 줍니다. bit width가 Area 객체 값에 충분하지 않은 경우 ErrorFlagO 링크(비트 0)로 표시됩니다. |
|
| GenerateAreaOverflowEvents | |
|---|---|
| Type | static parameter |
| Default | false |
| Range | {true, false} |
|
객체의 Area 값이 AreaO 링크의 bit width를 초과하면 객체는 중간 상태로 출력됩니다. 객체는 내부적으로 계속 처리되고 진행되지만, 이는 출력된 객체의 중간 결과입니다. AreaOverflowEvent로 인해 출력된 객체에는 ErrorFlagsO의 비트 1이 태그로 지정됩니다. |
|
| CenterXBitWidthMode | |
|---|---|
| Type | static parameter |
| Default | AutomaticContextMaximum |
| Range | {AutomaticContextMaximum, LinkManuallyEditable} |
|
Center of Gravity 기능에 대한 설명은 'Center of Gravity'를 참조하십시오. 출력은 이미지 모멘트 M10입니다. Center of Gravity X에 대한 픽셀 좌표를 얻으려면 DIV 오퍼레이터를 사용하거나 대상 호스트에서 값을 면적으로 나누십시오. 설정하는 경우 AutomaticContextMaximum, operators가 객체의 최대 크기에 대한 bit width를 자동으로 설정합니다. 1D 이미지에는 실제 최대 높이가 존재하지 않기 때문에, 최대 높이를
자동 모드에서도 최댓값은 48비트로 제한됩니다. 즉, AutomaticContextMaximum(으)로 설정되었다고 해서 오버플로우를 방지하기에 값이 자동으로 충분해지는 것은 아닙니다. 가능한 최대 CenterX (이미지 모멘트 M10) 값을 알 수 있거나 특정 X 좌표의 객체만 관심 대상인 경우, Basler에서는 LinkManuallyEditable 모드를 사용할 것을 권장합니다. 이를 통해 리소스를 절약하고 전체 디자인의 빌드 시간을 단축할 수 있습니다. LinkManuallyEditable 모드에서는 허용 범위 [1, 48] 내에서 링크의 Bit Width Property를 편집할 수 있습니다. 링크의 Bit Width는 CenterX 기능 계산에 내부적으로 사용되는 Bit Width로 직접 변환되므로, 전체 리소스 소비에 영향을 미칩니다. 객체의 CenterX 값에 Bit Width가 충분하지 않은 경우, ErrorFlagO 링크(비트 2)에 표시됩니다. |
|
| GenerateCenterXOverflowEvents | |
|---|---|
| Type | static parameter |
| Default | false |
| Range | {true, false} |
|
객체의 CenterX 값이 CenterX 링크의 Bit Width를 초과하면, 해당 객체는 중간 상태로 출력됩니다. 객체는 내부적으로 계속 처리 및 진행되지만, 출력된 것은 객체의 중간 결과입니다. CenterX OverflowEvent로 인해 출력된 객체는 ErrorFlagsO의 비트 3으로 태그됩니다. |
|
| CenterYBitWidthMode | |
|---|---|
| Type | static parameter |
| Default | AutomaticContextMaximum |
| Range | {AutomaticContextMaximum, LinkManuallyEditable} |
|
Center of Gravity 기능에 대한 설명은 'Center of Gravity'를 참조하십시오. 출력은 이미지 모멘트 M10입니다. 무게 중심 Y에 대한 픽셀 좌표를 얻으려면 DIV operator를 사용하거나 호스트 PC에서 값을 Area로 나누십시오. 설정하는 경우 AutomaticContextMaximum, operators가 객체의 최대 크기에 대한 bit width를 자동으로 설정합니다. 1D 이미지에는 실제 최대 높이가 존재하지 않기 때문에, 최대 높이를
자동 모드에서도 최댓값은 48비트로 제한됩니다. 즉, AutomaticContextMaximum(으)로 설정되었다고 해서 오버플로우를 방지하기에 값이 자동으로 충분해지는 것은 아닙니다. 가능한 최대 CenterY (이미지 모멘트 M10) 값을 알 수 있거나 특정 Y 좌표의 객체만 관심 대상인 경우, Basler에서는 LinkManuallyEditable 모드를 사용할 것을 권장합니다. 이를 통해 리소스를 절약하고 전체 디자인의 빌드 시간을 단축할 수 있습니다. LinkManuallyEditable 모드에서는 허용 범위 [1, 48] 내에서 링크의 Bit Width Property를 편집할 수 있습니다. 링크의 Bit Width는 Area 기능 계산에 내부적으로 사용되는 Bit Width로 직접 변환되므로, 전체 리소스 소비에 영향을 미칩니다. 객체의 CenterY 값에 Bit Width가 충분하지 않은 경우, ErrorFlagO 링크(비트 4)에 표시됩니다. |
|
| GenerateCenterYOverflowEvents | |
|---|---|
| Type | static parameter |
| Default | false |
| Range | {true, false} |
|
객체의 CenterY 값이 CenterY 링크의 Bit Width를 초과하면, 해당 객체는 중간 상태로 출력됩니다. 객체는 내부적으로 계속 처리 및 진행되지만, 출력된 것은 객체의 중간 결과입니다. CenterY OverflowEvent로 인해 출력된 객체는 ErrorFlagsO의 비트 5로 태그됩니다. |
|
BlobDetector1D operator의 사용법은 다음 예시와 같습니다.
-
예시 - 라인 스캔 응용 분야에서 BlobDetector1D operator의 사용법을 보여줍니다.

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









이전

