콘텐츠로 건너뛰기
STAGING SERVER
DEVELOPMENT SERVER

디베이어링으로 인해 누락된 픽셀 값 처리#

컬러 카메라에서는 디베이어링(디모자이닝이라고도 함) 알고리즘을 사용하여 픽셀 데이터로부터 RGB 값을 계산합니다. "Bayer conversion"을 검색하면 이를 수행하는 다양한 방법을 확인할 수 있습니다. 간단한 변환 방식은 다음과 같습니다.

Bayer Conversion

이 예시는 "RG" Bayer array를 보여주며, 각 픽셀의 전체 RGB 정보는 해당 픽셀과 주변 픽셀의 Bayer array 강도 값을 바탕으로 도출됩니다. 녹색 강도 값은 평균화됩니다. 보시다시피 이 프로세스는 주변 픽셀의 더 이상 정보를 사용할 수 없는 프레임 끝부분의 엣지 케이스에서 문제가 발생합니다. 현재 픽셀의 오른쪽 및/또는 아래쪽에 픽셀이 없습니다.

주변 픽셀의 정보가 필수적이므로 많은 복잡한 Bayer conversion에서 이러한 현상이 발생합니다. 이러한 상황은 최종 사용자 솔루션에서 다양한 방식으로 처리될 수 있습니다. 예를 들어, 애플리케이션이 끝에서 두 번째 픽셀 데이터를 마지막 픽셀에 복사할 수 있습니다.

완벽한 유연성을 제공하기 위해 이미지 테두리와 모서리에는 0 값이 포함되어 출력됩니다. 이로 인해 마지막 행과 열에 검은색 픽셀이 생성됩니다.

이러한 픽셀은 다음 pylon C++ API 컨버터 함수를 사용하여 잘라낼(clipping) 수 있습니다.

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에서 이 함수를 사용하는 방법을 보여줍니다.

PYLON_IMAGE_FORMAT_CONVERTER_HANDLE hImageCon = Pylon.ImageFormatConverterCreate();
NODEMAP_HANDLE nodemap = Pylon.ImageFormatConverterGetNodeMap(hImageCon);
NODE_HANDLE node = GenApi.NodeMapGetNode(nodemap,"InconvertibleEdgeHandling");
GenApi.NodeFromString(node,"Clip");

기술 문서로 돌아가기