Operator Library: Debugging
ImageInjector 연산자를 사용하면 연산자의 이미지 데이터 출력에 이미지를 주입할 수 있습니다. 이미지는 파일에서 직접 주입할 수 있습니다(파일 형식: *.tif). Framegrabber API 또는 Framegrabber SDK 도구인 microDisplay를 통해 주입 명령을 내릴 수 있습니다.
ImageInjector 연산자는 VisualApplets에서 디자인을 시뮬레이션할 때 사용하는 Simulation Sources와 유사하게 작동합니다. 단, ImageInjector 연산자는 런타임 중 테스트 용도로 사용됩니다.
삽입(Insertion)과 교체(Replacement)의 두 가지 주입 방식이 지원됩니다.
Insert modes: 삽입 모드 중 하나가 활성화되면 입력 링크가 차단됩니다.
Replacement modes: 교체 모드 중 하나가 활성화되면 연산자는 이미지 주입 중에 이미지 싱크(Sink) 역할을 합니다. 입력 링크는 차단되지 않습니다.
주입된 이미지 데이터는 WritePixel 및 WriteFlag 레지스터에 기록하여 픽셀 단위로 삽입됩니다. 쓰기 레지스터는 파라미터 ReadyForInjection이 "yes"로 전환된 경우에만 활성화됩니다. (파라미터 ReadyForInjection 이 "yes"로 설정되는 시점을 알아보려면 파라미터 Mode를 참조하세요.)
주입된 이미지의 각 라인 끝(마지막 라인 제외)에서 EndOfLine 플래그를 WriteFlag 레지스터에 기록해야 합니다. 마지막 라인의 끝에 도달하면 EndOfFrame 플래그를 WriteFlag 레지스터에 기록해야 합니다.
CurrXPos 및 CurrYPos 파라미터는 현재 활성화된 픽셀 위치를 가리킵니다.
![]() |
파라미터 EnableInsertModes는 연산자의 유형을 M-type에서 P-type으로 변경합니다. |
|---|---|
|
ImageInjector 연산자는 M-type 연산자입니다. 그러나 EnableInsertModes를 "no"로 설정하면 VisualApplets에서 해당 연산자가 P-type 연산자처럼 처리됩니다. |
![]() |
주입 모드 비활성화 |
|---|---|
|
기본 모드인 FlowThrough로 다시 전환(즉, 모든 종류의 주입 비활성화)은 파라미터 ReadyForFlowThrough가 "yes"로 설정된 경우에만 허용됩니다. |
![]() |
런타임 테스트 |
|---|---|
|
이 Operator는 런타임 중에 디자인을 테스트하고 분석하도록 설계되었습니다. 디자인을 빌드(합성)하고, 타겟 하드웨어에 로드한 후, 실제 이미지 처리를 시작해야 디버깅에 Operator를 사용할 수 있습니다. 이 Operator는 VisualApplets 내의 디자인 시뮬레이션용이 아닙니다. |
| Link Parameter | Input Link I | Output Link O |
|---|---|---|
| Bit Width | [1, 64] | as I |
| Arithmetic | {unsigned, signed} | as I |
| Parallelism | 1 | as I |
| Kernel Columns | 1 | 1 |
| Kernel Rows | 1 | 1 |
| Img Protocol | {VALT_IMAGE2D, VALT_LINE1D} | as I |
| Color Format | any | as I |
| Color Flavor | any | as I |
| Max. Img Width | any | as I |
| Max. Img Height | any | as I |
| Mode | |
|---|---|
| Type | dynamic write parameter |
| Default | FlowThrough |
| Range | {FlowThrough, InsertAfterEof, InsertAfterEol, ReplaceAfterEof, ReplaceAfterEol} |
|
이 모드 파라미터는 이미지 주입을 활성화 및 비활성화합니다. 이미지 주입 중에 연산자는 입력 링크를 차단하거나(InsertAfterEof, InsertAfterEol) 주입 중에 들어오는 이미지 데이터를 폐기합니다(ReplaceAfterEof, ReplaceAfterEol). Inject: 이 모드에서 연산자는 즉시 입력 링크를 차단하고 파라미터 ReadyForInjection을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. FlowThrough: 이미지 주입이 비활성화됩니다. 기본 모드인 FlowThrough로 다시 전환(즉, 모든 종류의 주입 비활성화)은 파라미터 ReadyForFlowThrough가 "yes"로 설정된 경우에만 허용됩니다. InsertAfterEof: 이 모드로 설정하면 연산자는 EoF(End-of-Frame) 플래그를 찾습니다. EoF 플래그를 찾는즉시(즉, 현재 이미지의 끝에 도달했을 때) 연산자는 입력 링크를 차단하고 파라미터 ReadyForInjection 을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. 이 모드는 LINE-1D 이미지 프로토콜에서는 사용할 수 없습니다. 이 모드는 파라미터 EnableInsertModes가 "yes"로 설정된 경우에만 사용할 수 있으며, 이는 연산자가 M 타입임을 의미합니다. InsertAfterEol: 이 모드로 설정하면 연산자는 EoL(End-of-Line) 플래그를 찾습니다. EoL 플래그를 찾는즉시(즉, 현재 라인의 끝에 도달했을 때) 연산자는 입력 링크를 차단하고 파라미터 ReadyForInjection 을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. 이 모드는 LINE-1D 이미지 프로토콜에서는 사용할 수 없습니다. 이 모드는 파라미터 EnableInsertModes가 "yes"로 설정된 경우에만 사용할 수 있으며, 이는 연산자가 M 타입임을 의미합니다. 사용 가능한 두 가지 교체 모드 중 하나로 설정하면 연산자는 이미지 주입 중에 이미지 싱크(Sink) 역할을 합니다. ReplaceAfterEof: 연산자는 현재 이미지가 끝날 때까지 대기합니다. EoF 플래그를 찾는 즉시 연산자는 파라미터 ReadyForInjection 을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. 주입 중에는 들어오는 이미지 데이터가 폐기됩니다. LINE-1D 이미지 프로토콜에서는 사용할 수 없습니다. ReplaceAfterEol: 연산자는 현재 라인이 끝날 때까지 대기합니다. EoL 플래그를 찾는 즉시 연산자는 파라미터 ReadyForInjection 을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. 주입 중에는 들어오는 이미지 데이터가 폐기됩니다. |
|
| EnableInsertModes | |
|---|---|
| Type | static write parameter |
| Default | 표시된 패킷 크기 값은 카메라에 |
| Range | {yes, no} |
|
"yes"로 설정하면 파라미터 Mode를 삽입 모드인 InsertAfterEof 또는 InsertAfterEol로 설정할 수 있습니다. 이 경우 연산자는 M 타입이 됩니다. "no"로 설정하면 파라미터 Mode에 대해 이 두 가지 삽입 모드가 허용되지 않으며, 연산자는 P 타입이 됩니다. |
|
| ReadyForInjection | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 표시된 패킷 크기 값은 카메라에 |
| Range | {yes, no} |
|
파라미터 Mode가 삽입 또는 교체 모드일 때 픽셀이나 플래그를 기록할 준비가 되었음을 나타냅니다. 파라미터 WritePixel 및 WriteFlag를 활성화하려면 "yes"로 설정해야 합니다. |
|
| ReadyForFlowThrough | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 표시된 패킷 크기 값은 카메라에 |
| Range | {yes, no} |
|
파라미터 Mode의 FlowThrough 모드로 다시 전환할 준비가 되었음을 나타냅니다. 파라미터 WriteFlag 설정 시 파라미터가 자동으로 "yes"로 설정됩니다.
|
|
| CurrXPos | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 0 |
| Range | [0, MaxImageWidth-1] |
|
현재 라인 위치를 표시합니다. |
|
| CurrYPos | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 0 |
| Range | [0, MaxImageHeight-1] |
|
현재 이미지 높이 위치를 표시합니다. |
|
| WritePixel | |
|---|---|
| Type | dynamic write parameter |
| Default | 0 |
| Range | [0, 2^BitWidth-1] |
|
픽셀 값입니다. 24 bit Color Format을 사용하는 경우, 다음과 같은 비트 매핑을 적용해야 합니다: Red = [0, 7], Green = [9,15], Blue = [16,23]. |
|
| WriteFlag | ||||
|---|---|---|---|---|
| Type | dynamic write parameter | |||
| Default | EndOfLine | |||
| Range | {EndOfLine, EndOfFrame} | |||
|
이미지의 마지막 라인 끝을 제외하고, 주입되는 각 라인의 끝에 EndOfLine 플래그를 기록해야 합니다. 주입되는 이미지의 마지막 라인 끝에 EndOfFrame 플래그를 기록해야 합니다. 이 파라미터는 파라미터 ReadyForFlowThrough에도 영향을 미칩니다: 다음 조건에서 파라미터 ReadyForFlowThrough가 "yes"로 설정됩니다.
|
||||
| ImageFile | |
|---|---|
| Type | dynamic write parameter |
| Default | image.tif |
| Range | |
|
주입할 이미지 파일입니다. 이미지 크기는 출력 링크 Property와 같거나 작아야 합니다. 이미지 파일의 픽셀 심도는 컴포넌트당 8 bit 또는 16 bit일 수 있습니다. 컴포넌트당 이미지 픽셀 심도가 링크 Property에 정의된 Bit Width와 일치하지 않는 경우, 링크 Property에 정의된 픽셀 컴포넌트에 최상위 비트(MSB)가 정렬되도록 이미지 컴포넌트가 이동합니다. microDisplay에서 파일을 선택하려면 파일 경로를 수동으로 설정하거나 이 파라미터를 마우스 우클릭하여 파일 선택 메뉴를 여십시오. |
|
| InjectFromFile | |
|---|---|
| Type | dynamic write parameter |
| Default | 표시된 패킷 크기 값은 카메라에 |
| Range | {no, yes} |
|
"yes"로 설정하면 이미지 파일이 출력 링크에 주입됩니다. FlowThrough 모드에서는 비활성화됩니다(즉, 파라미터 Mode가 FlowThrough로 설정된 경우). |
|
ImageInjector 오퍼레이터의 사용법은 다음 예시에서 확인할 수 있습니다:
-
'ImageInjector를 사용하여 Test Images를 로드하는 기능 예제 '
Examples - Demonstration of how to use the operator
-
Example - 디버깅 목적을 위해 이미지를 수동으로 삽입할 수 있습니다.

![[참고]](../common/images/admon/note.png)
![[중요]](../common/images/admon/important.png)
이전

