運算子 ImageInjector

運算子函式庫:除錯

ImageInjector運算子可讓您將影像注入該運算子的影像資料輸出中。 這些影像可直接從檔案注入(檔案格式:*.tif)。 您可以透過Framegrabber API 或Framegrabber SDK 上的 microDisplay 工具下達注入指令。

「 ImageInjector」運算子的工作原理與您在VisualApplets 中模擬設計時所使用的「模擬來源」相似—— 只是「 ImageInjector」運算子是用於執行階段的測試。

支援兩種注入方式:插入與替換。

插入模式:當其中一種插入模式處於活躍狀態時,輸入連結將被封鎖。

替代模式:當其中一種替換模式處於有效狀態時, 該運算子 會在影像注入期間充當影像接收端。 輸入鏈路不會被阻斷。

注入的影像資料是透過寫入WritePixel和WriteFlag寄存器,以像素為單位逐一插入的。 只有當參數ReadyForInjection被設定 為「yes」時,寫入寄存器才會被啟用。(若要了解參數ReadyForInjection 何時會被設定為「yes」,請參閱參數Mode。)

在注入影像的每一行結尾(最後一行除外),都必須將「EndOfLine」 標誌寫入 WriteFlag 寄存器。 當到達最後一行結尾時,必須將「EndOfFrame」標誌 寫入 WriteFlag 寄存器。

CurrXPos和CurrYPos參數 指向當前活躍的像素位置。

[註] 參數EnableInsertModes會將運算子的類型從 M 型變更為 P 型

ImageInjector運算子屬於 M 型運算子。然而,若將EnableInsertModes設定為「no」,VisualApplets 便會將此運算子視為 P 型運算子來處理。

[註] 停用噴射模式

僅當 參數ReadyForFlowThrough設定為「yes」時, 才允許切換回預設模式FlowThrough(即停用所有類型的注入)。

[重要] 執行時測試

此運算子旨在於執行期間對您的設計進行測試與分析: 您需要先建置(綜合)該設計、將其載入目標硬體,並啟動實際的影像處理, 才能使用此運算子進行除錯。

此運算子並非用於在VisualApplets 中進行設計模擬。

I/O 屬性

屬性 價值
運算子類型 M
輸入連結 I,影像資料輸入
輸出連結 O、影像資料輸出

支援的連結格式

連結參數 輸入連結 I 輸出鏈結 O
Bit Width [1, 64] 當我
Arithmetic {無符號、有符號} 當我
Parallelism 1 當我
核心專欄 1 1
內核行 1 1
Img 協定 {VALT_IMAGE2D, VALT_LINE1D} 當我
Color Format 任何 當我
色彩 風味 任何 當我
圖片最大寬度 任何 當我
圖片最大高度 任何 當我

參數

模式
類型 動態寫入參數
預設 FlowThrough
範圍 {FlowThrough、InsertAfterEof、InsertAfterEol、ReplaceAfterEof、ReplaceAfterEol}

此模式參數用於啟用或停用影像插入功能。 在影像插入過程中,操作員會封鎖輸入連結(InsertAfterEof、InsertAfterEol), 或丟棄插入期間傳入的影像資料(ReplaceAfterEof、ReplaceAfterEol)。

注入:在此模式下,操作員會立即封鎖輸入連結,並將參數 ReadyForInjection設定為「yes」。 一旦ReadyForInjection被設定為「yes」,您即可從檔案注入影像。

FlowThrough: 已停用影像插入功能。 僅當參數 ReadyForFlowThrough設定為「yes」時,才允許切換回預設模式 FlowThrough(即停用所有類型的插入功能)。

InsertAfterEof:當設定為此模式時,操作員會搜尋「幀結束 (EoF)」標記。 一旦偵測到 EoF 標記(即抵達當前影像的結尾時), 操作員會封鎖輸入鏈路,並將參數ReadyForInjection 設定為「yes」。 當ReadyForInjection 設定為「yes」後,即可從檔案注入影像。 此模式不適用於 LINE-1D 影像協定。 此模式僅在參數EnableInsertModes設定為「yes」時才可用, 這也意味著操作員的類型為 M。

InsertAfterEol:當設定為此模式時,運算子會搜尋行尾 (EoL) 標記。 一旦找到行尾標記(即到達當前行尾時), 運算子會封鎖輸入連結,並將參數ReadyForInjection 設為「yes」。 一旦ReadyForInjection 設為「yes」,您即可從檔案注入影像。 此模式僅在參數EnableInsertModes設為「yes」時才可用, 這也意味著該運算員屬於 M 類型。

當設定為兩種可用的替換模式之一時,操作員在影像注入過程中會充當影像接收端。

ReplaceAfterEof:此運算子會等待當前影像結束。 一旦偵測到 EoF 標誌,運算子便會將參數ReadyForInjection 設定為「yes」。 當ReadyForInjection 被設定為「yes」後,即可從檔案注入影像。 在注入過程中,傳入的影像資料將被捨棄。 此功能不適用於 LINE-1D 影像通訊協定。

ReplaceAfterEol:此運算子會等待當前行結束。 一旦偵測到行尾標記,運算子便會將參數ReadyForInjection 設定為「yes」。 當ReadyForInjection 被設定為「yes」時,即可從檔案注入影像。 在注入過程中,傳入的影像資料將被捨棄。

啟用插入模式
類型 靜態寫入參數
預設 不
範圍 {是,否}

若設定為「是」,則可將「模式」參數設定為以下插入模式 InsertAfterEof 或 InsertAfterEol。。在此情況下, 運算子的類型為 M。 若設定為「否」,則參數Mode不允許使用這兩種插入模式, 且運算子的類型為 P。

已準備好進行注射
類型 動態讀取參數
預設 不
範圍 {是,否}

表示當參數Mode處於插入或替換模式時, 已準備好寫入像素或旗標。 必須將其設定為「yes」,才能啟用參數 WritePixel及 WriteFlag。

已準備好進行流貫測試
類型 動態讀取參數
預設 不
範圍 {是,否}

表示已準備好切換回「FlowThrough」模式 (參數「Mode」)。

當設定參數 WriteFlag時,該參數會自動設為「是」

  • 在 IMAGE-2D 模式下寫入 EndOfFrame,或
  • 在 LINE-1D 模式下,會寫入一個 EndOfLine。

CurrXPos
類型 動態讀取參數
預設 0
範圍 [0, MaxImageWidth-1]

顯示當前的行位置。

CurrYPos
類型 動態讀取參數
預設 0
範圍 [0, MaxImageHeight-1]

顯示當前影像的高度位置。

WritePixel
類型 動態寫入參數
預設 0
範圍 [0, 2^BitWidth-1]

像素值。若使用 24 位元色彩格式, 則必須套用以下位元映射: 紅色 = [0, 7]、綠色 = [9, 15]、藍色 = [16, 23]。

WriteFlag
類型 動態寫入參數
預設 EndOfLine
範圍 {行尾, 幀尾}

您需要在每行插入內容的結尾處寫入一個「EndOfLine」標記, 但圖片的最後一行除外。

您需要在注入的影像最後一行結尾處寫入一個 EndOfFrame 標記。

此參數也會影響「ReadyForFlowThrough」參數:

當以下情況發生時,參數ReadyForFlowThrough會被設定為「yes」,即

  • 在 IMAGE-2D 模式下寫入 EndOfFrame,或
  • 在 LINE-1D 模式下,會寫入一個 EndOfLine。

[註] 每次僅可使用一個旗標

在影像結束時,僅需將「EndOfFrame」標誌寫入此參數中。

請勿將 EoL 與 EoF 同時寫入。EoF 始終包含 EoL+EoF。

ImageFile
類型 動態寫入參數
預設 image.tif
範圍

待嵌入的影像檔案。影像尺寸必須等於或小於輸出連結的屬性。 影像檔案的每通道位元深度可為 8 位元或 16 位元。若影像的每通道位元深度 不等於連結屬性所定義的每通道位元寬度時,系統會對影像通道進行位移,使其 能 與連結屬性所定義的像素通道以最高有效位元 (MSB) 對齊。 在 microDisplay 中選擇檔案時,請手動設定檔案路徑,或右鍵點擊此參數以開啟檔案選擇 選單。

InjectFromFile
類型 動態寫入參數
預設 不
範圍 {不,是}

當設定為「是」時, 圖片檔案會被嵌入至輸出連結中。 在 FlowThrough 模式下會停用此功能(即當參數Mode設定為 FlowThrough 時)。

使用範例

以下範例展示了 ImageInjector 運算子的使用方式: