주요 콘텐츠

demosaic

베이어 영상을 트루컬러 영상으로 변환

설명

RGB = demosaic(bayer,sensorAlignment)는 베이어 영상 bayer를 트루컬러 영상 RGB로 변환합니다. sensorAlignment 인수는 베이어 패턴을 지정합니다.

베이어 필터 모자이크는 일종의 컬러 필터 배열(CFA: Color Filter Array)로서, 단일 칩 디지털 카메라의 광센서 위에 컬러 필터들을 배치한 것입니다. 컬러 필터를 통해 각각의 광센서는 빨간색, 녹색 또는 파란색 데이터만 기록하게 됩니다. 베이어 패턴은 베이어 필터 모자이크를 구성하는 4개의 컬러 필터(녹색 필터 두 개, 빨간색 필터 한 개, 파란색 필터 한 개로 이루어짐)를 반복 배치한 것입니다.

베이어 패턴 영상 즉, 베이어 영상은 베이어 필터 모자이크를 사용하여 카메라에서 촬영한 것입니다. 베이어 영상에서 모자이크를 제거하면 광센서의 신호를 결합하여 단일채널 명암 영상 대신 3채널 트루컬러 영상을 만들 수 있습니다.

예제

RGB = demosaic(bayer,sensorAlignment,BitsPerSample=bitsPerSample)은 입력 베이어 영상의 실제 비트 심도 bitsPerSample도 지정합니다. 데이터에 포함된 비트 수가 데이터형 (R2025a 이후)의 비트 수보다 적은 경우 이 구문을 사용하십시오.

예제

모두 축소

센서 정렬 'bggr'을 사용하는 카메라로 촬영된 베이어 패턴 인코딩 영상을 변환합니다.

I = imread("mandi.tif");
J = demosaic(I,"bggr");
imshow(I)

Figure contains an axes object. The hidden axes object contains an object of type image.

imshow(J)

Figure contains an axes object. The hidden axes object contains an object of type image.

RAW 파일에서 컬러 필터 배열(CFA) 영상과 메타데이터를 읽어 들입니다. 이 데이터는 12비트 센서를 사용하여 캡처되었으며, 데이터형 uint16으로 저장됩니다.

file = "colorCheckerTestImage.NEF";
cfa = rawread(file);
info = rawinfo(file);

이 데이터가 12비트임을 확인하기 위해 최대 픽셀 값을 확인합니다. 최댓값이 12비트 데이터 범위(2^12-1, 즉 4095) 내에 있습니다.

maxValue = max(cfa(:))
maxValue = uint16

3366

흰색 픽셀 값에 대한 정보가 들어 있는 파일 메타데이터도 12비트 데이터와 일치합니다.

whiteValue = info.ColorInfo.WhiteLevel
whiteValue = 1×4 uint16 row vector

   3827   3827   3827   3827

메타데이터에서 베이어 패턴을 가져옵니다. 샘플당 12비트를 사용하여 영상에서 모자이크를 제거합니다.

sensorAlignment = info.CFALayout;
rgbout = demosaic(cfa,sensorAlignment,BitsPerSample=12);
imageshow(rgbout,DisplayRange=[0 2^12])

입력 인수

모두 축소

베이어 패턴 인코딩 영상으로, M×N 숫자형 배열로 지정됩니다. bayer는 적어도 5개의 행과 5개의 열을 가져야 합니다.

데이터형: uint8 | uint16 | uint32

베이어 패턴으로, 다음 표에 있는 값 중 하나로 지정됩니다. 각 값은 영상의 왼쪽 위 코너에 있는 4개 픽셀을 설명함으로써 빨간색, 녹색 및 파란색 센서의 순서를 나타냅니다(왼쪽에서 오른쪽으로, 위에서 아래로).

패턴2×2 센서 정렬
"gbrg"

Top left pixel is green, top right pixel is blue, bottom left pixel is red, and bottom right pixel is green.

"grbg"

Top left pixel is green, top right pixel is red, bottom left pixel is blue, and bottom right pixel is green.

"bggr"

Top left pixel is blue, top right pixel is green, bottom left pixel is green, and bottom right pixel is red.

"rggb"

Top left pixel is red, top right pixel is green, bottom left pixel is green, and bottom right pixel is blue.

데이터형: char | string

R2025a 이후

샘플당 비트 수로, 양의 정수로 지정됩니다. 모자이크가 제거된 영상 RGB의 최댓값은 2^bitsPerSample – 1과 같습니다.

기본적으로 bitsPerSamplebayer의 데이터형의 비트 수와 같습니다. 즉, uint8형 영상인 경우에는 8, uint16형 영상인 경우에는 16, uint32형 영상인 경우에는 32입니다.

예: uint16형 및 uint32형 베이어 영상의 경우 12는 샘플당 12비트를 사용하고 RGB 영상의 최댓값을 2^12 – 1, 즉 4095로 설정합니다.

출력 인수

모두 축소

RGB 영상으로, bayer와 동일한 데이터형의 M×N×3 숫자형 배열로 반환됩니다.

알고리즘

demosaic 함수는 기울기가 수정된 선형 보간을 사용하여 2차원 베이어 영상을 트루컬러 영상으로 변환합니다.

참고 문헌

[1] Malvar, H.S., L. He, and R. Cutler, High quality linear interpolation for demosaicing of Bayer-patterned color images. ICASPP, Volume 34, Issue 11, pp. 2274-2282, May 2004.

확장 기능

모두 확장

버전 내역

R2007b에 개발됨

모두 확장