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

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









이전

