处理由去马赛克引起的丢失像素值#
在彩色相机中,RGB 值是通过使用去马赛克(有时也称为插值)算法从像素数据计算得出的。搜索“Bayer 转换”将向您展示执行此操作的多种方法。下面展示了一个简单的转换示例:

该示例展示了一个“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 中的此函数: