處理去馬賽克(Debayering)所造成的遺失像素值#
在彩色相機中,RGB 值是透過「去拜爾化」(有時也稱為「去馬賽克」)演算法,根據像素資料計算得出的。搜尋「拜爾轉換」即可找到多種執行此操作的方法。以下展示了一種簡單的轉換方式:

此範例展示了一個「RG」拜耳陣列,其中每個像素的完整 RGB 資訊,是根據該像素及其鄰近像素的拜耳陣列亮度值所推導而來。綠色亮度值會進行平均處理。如您所見,在畫面邊緣處,由於無法再從鄰近像素取得資訊,此過程會遇到一些邊緣情況。當前像素的右側和/或下方沒有任何像素。
許多複雜的拜耳轉換都會出現這種情況,因為周邊像素的資訊至關重要。在終端用戶解決方案中,可以針對這些情況採取不同的處理方式。例如,應用程式可以將倒數第二個像素的資料複製到最後一個像素中。
為了提供完全的靈活性,圖像在邊框和角落處將以零 (0) 值呈現。這會導致最後一行和最後一列出現黑色像素。
可透過以下pylon C++API 轉換函式對這些像素進行裁切:
CImageFormatConverter converter;
converter.OutputPixelFormat = PixelType_BGR8packed;
converter.InconvertibleEdgeHandling = InconvertibleEdgeHandling_Clip;
或者使用pylon .NETAPI:
private PixelDataConverter converter = new PixelDataConverter();
converter.OutputPixelFormat = PixelType.BGRA8packed;
converter.Parameters\[PLPixelDataConverter.InconvertibleEdgeHandling\].TrySetValue(PLPixelDataConverter.InconvertibleEdgeHandling.Clip);
以下程式碼展示了pylon C.NET 中的該函式: