FIRkernelNxM 運算子

Operator Library: Filter

運算子FIRkernelNxM會在每個像素周圍建立一個矩形 核視窗,其中包含鄰近像素。該 核視窗的大小可透過編輯輸出連結來定義。N代表核視窗的行數 ,M則代表核視窗的列數。

[注意] 無 FIR 濾波器

與其名稱相反,此運算子與 FIR 濾波器毫無關聯。它可 用於產生濾波器的輸入資料。

其他用於生成核的運算子包括 以下運算子 LineNeighboursNx1 以及 PixelNeighbours1xM。

核的中心元素總是 代表該位置的原始輸入像素。輸出影像 O 的 像素索引為 x 和 y,核索引為 m 和 n,其由輸入影像透過以下方式推導而出:

與 進行明確的生命週期管理即呼叫

在影像邊緣處,不會定義任何鄰接像素。 此運算子允許透過參數EdgeHandling 來定義所需的邊緣處理演算法。

對於尺寸為偶數的核,並不存在中央 像素。在此情況下,中央像素會被移至左上角;例如,對於 尺寸為 4x4 的核,其中央像素定義為 (1,1),如下表 所示。

0,0 0,1 0,2 0,3
1,0 1,1 1,2 1,3
2,0 2,1 2,2 2,3
3,0 3,1 3,2 3,3

核函數由行數和 列數來描述。在VisualApplets 中,N代表行數, 而M代表列數。通常,核函數 的元素是透過索引而非座標來取址的。在此情況下, 取址順序為逐行進行,如下表所示。

0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15

以下範例展示了由 三個核心行與三個核心列所構成的最終組合。圖中所示運算子中的 3x3 矩陣 提供了相對位址,用以定義各核心的內容。輸出端的每個 3x3 群組 顯示了每個像素所對應的不同核心值。

與其逐像素地配置核, 此範例展示的是最終產生的子核:索引為 0 的第一個核,以及索引為 8 的 最後一個核。

以下範例顯示了 由兩行及兩欄核函數所構成的組合結果。由於相對位址僅 參照右側或下方的鄰接元素,因此無需對 左側或頂部的內容進行邊緣處理。

將最後兩個範例中奇數與 偶數核大小進行比較,可觀察到 edgeHandling 功能在 edgeMirroring模式下呈現顯著的行為。雖然對於偶數與奇數核大小的edgeMirroring, 在頂部和左側邊界上的處理方式完全相同,但在 底部和右側邊界上卻會產生略有不同的結果。 由於輸出影像尺寸龐大,因此僅呈現 第一個(右上角)與最後一個(右下角)輸入像素的 配置結果,以及各核所產生的數值:

針對奇數核大小的EdgeMirroring會 將缺失資料的區域,以等距處的含資料區域進行填充。邊界將被保留 且不會被複製。 對於偶數核大小,將區域填充至頂部或左側時, 同樣適用此原則。相較之下,將區域填充至底部或右側時, 在鏡像過程中會複製邊界。同樣地,此情況僅發生於偶數核大小。

[提示] 針對均勻核心大小的EdgeMirroring

對於大小均等的像素,若將區域填充至底部或右側,在鏡像處理時會 複製邊界。

從技術上來說,該運算子會等待並將 核心所需的像素緩衝起來,直到能夠並行輸出為止。因此,該 運算子會造成延遲,因為只有在輸入端處理完所有所需的 相鄰像素後,才能輸出像素。行延遲為:

Operator Restrictions

  • ImageWidth < 2*Parallelism is not allowed.

  • 不允許使用空白圖片,即沒有像素的圖片。

  • 不允許出現空行或行長不一的情況。

I/O Properties

Property Value
Operator Type M
Input Link I,資料輸入
Output Link O,核心輸出

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width any1 as I
Arithmetic {unsigned, signed} as I
Parallelism {1, 2, 4, 8, 16, 32, 64} as I
Kernel Columns 1 any2
Kernel Rows 1 any3
Img Protocol {VALT_IMAGE2D, VALT_LINE1D}4 as I
Color Format any as I
Color Flavor any as I
Max. Img Width any as I
Max. Img Height any as I

1

輸入 Bit Width 的範圍為:

  • 針對無號輸入:[1, 64]

  • 對於有號數值:[2, 64]

  • 對於無號彩色輸入:[3, 63]

  • 針對有號色彩輸入:[6, 63]。

4

若使用 VALT_LINE1D 影像協定,則操作員的類型為 P, 而非 M。

2

OutputKernelColumns <= ImageWidth

3

OutputKernelRows <= ImageHeight

Parameters

邊緣處理
Type 靜態參數
Default EdgeMirrored
Range {EdgeMirrored, EdgeConstant}

在影像邊緣處,由於沒有鄰接像素可用來生成核,因此在此情況下, 該運算子可採用兩種邊緣處理模式:

在EdgeMirrored 模式下,影像邊緣會使用鏡像像素。

在EdgeConstant 模式下,邊緣處缺失的核元會被 一個恆定值填補。此值可透過參數 Constant 來定義。

常數
Type 靜態參數
Default 0
Range 輸入鏈接 I 的範圍

若將參數EdgeHandling設定為 EdgeConstant,則此參數將定義位於影像 邊界之外之像素的預設值。

對於色彩格式,該值是一個無符號整數,由所有色彩成分的二進位 表示法組合而成。

Examples of Use

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