處理去拜耳法(Debayering)所造成的遺失像素值#
在彩色相機中,RGB 值是使用 Debayering(有時也稱為 Demosaicing)演算法從像素資料計算得出的。搜尋「Bayer conversion」將向您展示執行此操作的各種方法。下方顯示了一個簡單的轉換:

此範例顯示「RG」Bayer 陣列,其中每個像素的完整 RGB 資訊是根據該像素及其相鄰像素的相應 Bayer 陣列強度值衍生而來的。綠色強度經過平均計算。如您所見,此過程將在畫面邊緣遇到一些邊界情況,此時不再有來自相鄰像素的可用資訊。當前像素的右側和/或下方沒有像素。
許多複雜的 Bayer 轉換都會發生這種情況,因為來自周圍像素的資訊至關重要。在終端使用者解決方案中,可以以不同的方式處理這些情況。例如,應用程式可以將倒數第二個像素資料複製到最後一個像素。
為了提供完全的靈活性,輸出的影像在邊界和角落處將帶有零 (0) 值。這會在最後一行和最後一列產生黑色像素。
可以使用以下 pylon C++ API 轉換器函式對這些像素進行裁剪:
CImageFormatConverter converter;
converter.OutputPixelFormat = PixelType_BGR8packed;
converter.InconvertibleEdgeHandling = InconvertibleEdgeHandling_Clip;
或者使用 pylon .NET API:
private PixelDataConverter converter = new PixelDataConverter();
converter.OutputPixelFormat = PixelType.BGRA8packed;
converter.Parameters\[PLPixelDataConverter.InconvertibleEdgeHandling\].TrySetValue(PLPixelDataConverter.InconvertibleEdgeHandling.Clip);
以下程式碼示範了 pylon C.NET 中的函式: