Operator Library: Filter
運算子 FIRkernelNxM 會在每個像素周圍建立包含相鄰像素的矩形核心視窗。核心的大小可透過編輯輸出連結來定義。N 表示核心行數,M 表示核心列數。
![]() |
No FIR filter |
|---|---|
|
與其名稱相反,此運算子與 FIR 濾波器無關。它可用於產生濾波器輸入資料。 |
用於產生核心的其他運算子為 LineNeighboursNx1 與 PixelNeighbours1xM。
核心的中央元素一律代表對應位置的原始輸入像素。具有像素索引 x 與 y 以及核心索引 m 與 n 的輸出影像 O 是透過以下方式從輸入衍生而來:
並使用
和
在影像邊緣處,未定義相鄰像素。此運算子允許使用參數 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 的最後一個核心。
以下範例顯示由兩個核心行與兩個核心列組成的組合結果。由於相對位址僅參考右側或下方的相鄰像素,因此無需對左側或頂部的內容執行邊緣處理。
比較最後兩個奇數與偶數核心大小的範例,可以看出 edgeMirroring 模式中 edgeHandling 功能的一個顯著行為。雖然奇數和偶數核心大小的 edgeMirroring 在頂部和左側邊界上的處理方式相同,但在底部和右側會產生稍微不同的結果。由於輸出影像尺寸較大,因此僅呈現第一筆(右上角)與最後一筆(右下角)輸入像素及其各自每個核心結果值的組態:
奇數核心大小的 EdgeMirroring 會使用來自等距資料區域的資料來填補缺少資料的區域。邊界會被保留且不會被複製。相同的原則也適用於填補偶數核心大小的頂部或左側區域。與此相對,填補底部或右側區域會在鏡射期間複製邊界。同樣地,這僅發生在偶數核心大小的情況下。
![]() |
偶數核心大小的 EdgeMirroring |
|---|---|
|
對於偶數大小的核心,填補底部或右側的區域會在鏡射期間複製邊界。 |
在技術上,此運算子會等待並緩衝核心所需的像素,直到可以平行輸出為止。因此,此運算子會造成延遲,因為像素只能在輸入端處理完所有對應的相鄰像素後才能輸出。行延遲為:
算子限制
-
ImageWidth < 2*Parallelism is not allowed.
-
不允許空白影像(即沒有像素的影像)。
-
不允許空白行或可變的行長度。
| EdgeHandling | |
|---|---|
| Type | static parameter |
| Default | EdgeMirrored |
| Range | {EdgeMirrored, EdgeConstant} |
|
在影像邊緣處,不存在可用於產生 kernel 的相鄰像素。在此情況下,運算子可在兩種邊緣處理模式下使用: 在 EdgeMirrored 模式下,影像邊緣會使用鏡射像素。 在 EdgeConstant 模式下,邊緣處缺失的 kernel 元素會以常數值進行填充。此值可透過參數 Constant 來定義。 |
|
| Constant | |
|---|---|
| Type | static parameter |
| Default | 0 |
| Range | 輸入 link I 的範圍 |
|
若參數 EdgeHandling 設為 EdgeConstant,此參數將定義影像邊界外像素的預設值。 對於 Color Format,此值是一個無號整數,結合了所有色彩分量的二進位表示法。 |
|
以下範例展示了 FIRkernelNxM 運算子的使用方式:
-
Synchronization - 避免死結。
-
局部自適應閾值化的二值化範例。 使用 8x8 像素的 kernel 大小。
-
「Nearest Neighbor Demosaicing」
範例 - Nearest Neighbor Bayer Demosaicing
-
範例 - 此範例展示使用 3x3 濾波器進行 Bayer RAW 模式的去馬賽克(demosaicing)。
-
範例 - 此範例展示使用 5x5 濾波器進行 Bayer RAW 模式的去馬賽克。
-
「Bayer 3x3 Demosacing with White Balancing」
範例 - 此範例展示使用 3x3 濾波器進行 Bayer RAW 模式的去馬賽克。 此外,還加入了用於色彩校正的白平衡。
-
「Bayer 5x5 Demosacing with White Balancing」
範例 - 此範例展示使用 5x5 濾波器進行 Bayer RAW 模式的去馬賽克。 此外,還加入了用於色彩校正的白平衡。
-
「Edge Sensitive Bayer Demosaicing Algorithm」
範例 - Edge Sensitive Laplace Bayer Demosaicing 濾波器
-
「Bayer Demosaicing Algorithm According to Laroche」
範例 - Laroche Bayer Demosaicing 濾波器
-
「Modified Laroche Bayer Demosaicing Algorithm 」
範例 - 資源最佳化的 Laroche Bayer Demosaicing 濾波器
-
範例 - 此範例展示具有色彩模式 Red/BlueFollowedByGreen_GreenFollowedByBlue/Red 的雙線性線掃描相機之 Bayer RAW 模式去馬賽克
-
範例 - 此範例顯示具備 Red/BlueFollowedByBlue/Red_GreenFollowedByGreen 彩色圖樣的雙線性線型掃描相機之 Bayer RAW 圖樣去邊緣化處理
-
'Bayer Demosaicing a Line Scan Camera with 8 Bit BiColor Bayer Pattern'
範例 - 此範例顯示採用 BiColor Bayer 圖樣(例如 BiColorRGBG、BiColorGRGB、BiColorBGRG 與 BiColorGBGR,適用於 racer 2 L 相機等)之 CXP-12 線型掃描相機的 8 位元 Bayer RAW 圖樣去邊緣化處理。此外,該範例還包含一個線型掃描觸發模組以及一個白平衡模組。
-
'Bayer Demosaicing a Line Scan Camera with 10 Bit BiColor Bayer Pattern'
範例 - 此範例顯示採用 BiColor Bayer 圖樣(例如 BiColorRGBG、BiColorGRGB、BiColorBGRG 與 BiColorGBGR,適用於 racer 2 L 相機等)之 CXP-12 線型掃描相機的 10 位元 Bayer RAW 圖樣去邊緣化處理。此外,該範例還包含一個線型掃描觸發模組以及一個白平衡模組。
-
'Bayer Demosaicing a Line Scan Camera with 12 Bit BiColor Bayer Pattern'
範例 - 此範例顯示採用 BiColor Bayer 圖樣(例如 BiColorRGBG、BiColorGRGB、BiColorBGRG 與 BiColorGBGR,適用於 racer 2 L 相機等)之 CXP-12 線型掃描相機的 10 位元 Bayer RAW 圖樣去邊緣化處理。此外,該範例還包含一個線型掃描觸發模組以及一個白平衡模組。
-
範例 - 顯示 imaFlex 平台的協同處理器功能。 作為範例,此處計算了 Median Filter。
-
"Co-Processor Large Filter Calculation"
範例 - 顯示 imaFlex 平台的協同處理器功能。 作為範例,此處計算了一個大型濾鏡核心。
-
範例 - 將二值化侵蝕影像與原始影像進行比較。 若兩者相異,則會偵測到邊緣。
-
範例 - Kirsch Filter 是一種適用於無方向性邊緣的良好邊緣偵測濾鏡。
-
範例 - 僅在 X 方向上的 Sobel 濾鏡。
-
範例 - 涵蓋所有 4 個方向的 Sobel 濾鏡。
-
範例 - 顯示套用於二值化影像的數學形態學閉運算之實作。
-
範例 - 顯示套用於二值化影像的數學形態學開運算之實作。
-
範例 - 一個簡單的 3x3 方框濾鏡。
-
範例 - 使用 5x5 核心的高斯濾鏡。
-
範例 - Applet 會對影像套用 5x5 Median Filter。
-
範例 - 解釋濾波器的實作。
-
範例 - 平行使用兩個濾波器的範例。
-
範例 - 顯示如何從濾波器中擷取子核心以取得原始影像資料。 此範例執行簡單的局部自適應二值化。
-
'Filter for Line Scan Cameras'
範例 - 解釋如何為線陣相機實作濾波器。
-
'High Boost Sharpening Filter'
範例 - 用於銳化的高提升 Laplace 濾波器
-
範例 - 3x3 Laplace 濾波器。
-
範例 - 使用高強度斑點係數進行卷積。 對於高於閾值的結果,相應的像素將被染成紅色。
-
範例 - 使用迴圈的 Depth From Focus
-
'Normalized Cross Correlation'
範例 -
-
範例 - 此範例展示了自動壞點偵測與替換。

![[備註]](../common/images/admon/note.png)
![[提示]](../common/images/admon/tip.png)




上一頁

