Operator Library: Accumulator
ModuloCounter는 입력 링크의 픽셀, 라인 또는 프레임 수를 셉니다. 카운트 시퀀스는 모듈로 제수(divisor)에 의해 제한됩니다. 시퀀스가 반복되기 전에 카운터가 가질 수 있는 고유 상태의 수는 모듈로 제수에 의해 정의됩니다. 모듈로 제수는 Divisor 매개변수로 정의됩니다. 예를 들어, 모듈로 제수가 4인 경우 "n MOD 4", 즉 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3 ... 순으로 카운트합니다.
출력 프레임의 이미지 크기는 항상 입력 프레임의 이미지 크기와 같습니다. 출력의 픽셀 데이터는 카운터 결과를 나타냅니다. 픽셀 값은 사용되지 않으며, 계산에는 픽셀, 라인 또는 프레임 인덱스만 고려됩니다.
카운터는 항상 값 0에서 시작합니다. CountEntity 매개변수를 구성하여 입력 링크의 모든 픽셀, 라인 또는 프레임을 카운트하도록 설정할 수 있습니다. 예를 들어 CountEntity 매개변수가 PIXEL로 설정된 경우, 연산자는 입력의 모든 픽셀마다 카운터를 증가시킵니다.
CountEntity가 LINE으로 설정된 경우, 카운터는 모든 라인의 시작 부분에서 증가하며 따라서 입력 링크의 라인 수를 셉니다. 예를 들어 모듈로 제수가 4인 경우, 라인 0의 모든 픽셀은 값 0을 가지게 됩니다. 라인 1의 픽셀은 값 1을 가지는 식으로 진행됩니다. 그러나 라인 4의 픽셀은 다시 픽셀 값 0을 가집니다.
만약 CountEntity가 FRAME으로 설정되면, 카운터는 모든 프레임의 시작 부분에서 증가합니다.
다음 예에서는 연산자의 사용법을 설명합니다. 첫 번째 예에서는 이미지 너비와 높이가 8픽셀인 두 개의 연속 프레임을 보여줍니다. 모든 픽셀 값은 숫자로 표시됩니다. 프레임 인덱스 0은 초기 프레임, 즉 Acquisition Start 직후의 첫 번째 프레임을 나타냅니다.
-
구성: Divisor = 6, CountEntity = PIXEL, AutoClear = EoF

이 예에서 볼 수 있듯이, CountEntity 매개변수가 PIXEL로 설정되면 카운터는 모든 픽셀마다 증가합니다. Divisor가 6으로 설정되어 있으므로 결과 값은 0부터 5까지의 범위입니다. 프레임이 끝날 때 카운터가 재설정되므로, 두 번째 프레임에서 연산자는 다시 0부터 시작합니다.
-
구성: Divisor = 6, CountEntity = LINE, AutoClear = NONE

이 예에서 연산자는 픽셀 대신 라인을 셉니다. 따라서 이미지의 모든 픽셀은 라인 번호를 나타냅니다. 여기서 AutoClear 매개변수는 NONE으로 설정되어 있습니다. 따라서 연산자는 첫 번째 이미지 라인에서 재설정되지 않고 두 번째 프레임에서도 계속해서 라인을 셉니다.
-
구성: Divisor = 6, CountEntity = FRAME, AutoClear = NONE

마지막 예는 프레임 카운팅을 보여줍니다. 여기서 모든 픽셀의 값은 프레임 번호를 나타냅니다.
획득(acquisition) 중에 제수 매개변수가 변경되면, 새 값은 다음 프레임이 시작될 때 적용됩니다. 1D 입력의 경우, 새 값은 다음 라인에 적용됩니다. 입력에 0D 데이터가 있는 경우, 새로운 제수 값이 즉시 적용됩니다.
Image Restrictions
-
빈 이미지
빈 이미지, 즉 픽셀이 없는 이미지는 허용되지 않습니다.
| Divisor | |
|---|---|
| Type | 정적/동적 쓰기 파라미터 |
| Default | 1 |
| Range | [1..2^OutputBitWidth] |
|
이 매개변수는 모듈로 연산의 제수를 정의합니다. 제수 값은 2^OutputBitwidth보다 작거나 같아야 합니다. |
|
| CountEntity | |
|---|---|
| Type | static parameter |
| Default | PIXEL |
| Range | {PIXEL, LINE, FRAME} |
|
이 매개변수는 연산자 카운터가 모든 픽셀, 모든 라인에 대해 활성화될지, 아니면 각 프레임마다 한 번만 활성화될지를 정의합니다. FRAME 옵션은 이미지 프로토콜 VALT_IMAGE2D에서만 사용할 수 있습니다. LINE은 이미지 프로토콜 VALD_IMAGE2D 및 VALT_LINE1D에서만 사용할 수 있습니다. 이미지 프로토콜 VALT_PIXEL0D의 경우 매개변수가 항상 픽셀을 셉니다. |
|
| AutoClear | |
|---|---|
| Type | static parameter |
| Default | 없음 |
| Range | {EoL, EoF, NONE} |
|
AutoClear 옵션을 사용하면 라인 끝, 프레임 끝에서 카운터를 0으로 재설정하거나, 전혀 재설정하지 않도록 설정할 수 있습니다. CountEntity가 PIXEL로 설정된 경우, 이 매개변수의 세 가지 옵션을 모두 선택할 수 있습니다. CountEntity가 LINE으로 설정된 경우 EoF 및 NONE 옵션을 사용할 수 있습니다. CountEntity가 FRAME인 경우 연산자의 자동 지우기(auto clear)는 사용할 수 없습니다. VALT_LINE1D 이미지 프로토콜을 사용하는 경우 프레임 끝에서 지우기(clear)를 수행할 수 없습니다. VALT_PIXEL0D에서는 연산자의 자동 지우기를 사용할 수 없습니다. |
|
다음 예에서는 ModuloCount 오퍼레이터의 사용법을 보여 줍니다.
-
10개의 이미지 중 9개를 제거합니다.
-
Examples - 라인 스캔 애플리케이션에서 Blob_Analysis_1D operator 사용법을 보여줍니다.
-
'Color Plane Separation Option 3 - Sequential with Operator ImageBufferMultiRoI'
컬러 플레인의 순차적 DMA 출력. 컬러 분리는 ImageBufferMultiROI 연산자를 사용하여 수행됩니다.
-
'Color Plane Separation Option 5 - Sequential Output with Advances Processing'
컬러 플레인 분리에 대한 예시. RGB 입력이 각 성분으로 분리되며 하나의 DMA 채널을 통해 순차적으로 출력됩니다. 분리는 병렬 워드에서 동일한 성분을 수집하고 FrameBufferRandomRead로 읽는 방식으로 수행됩니다.
-
예시 - 디버깅 목적으로 Scope 오퍼레이터는 그레이스케일 이미지를 분석하기 위한 옵션을 제공합니다.
-
예시 - SampleDn operator를 사용하지 않고 3x3 배율로 다운샘플링하는 방법.
-
예시 - 입력 이미지 위에 그리드가 오버레이됩니다. 그리드 픽셀 값은 입력 픽셀 값에 따라 결정됩니다.


이전

