BGR2YCrCb와 YCrCb2BGR
YCrCb 색 공간에서 Y 성분은 밝기 또는 휘도(luminance) 정보를 나타내고, Cr과 Cb 성분은 색상 또는 색차(chrominance) 정보를 나타냅니다. RGB 색상 성분으로부터 Y 성분을 계산하는 공식은 그레이스케일 계산 공식과 완전히 같습니다. Cr과 Cb 성분은 밝기에 대한 정보는 포함하지 않으며 오직 색상에 대한 정보만을 가지고 있습니다. 그러므로 YCrCb 색 공간은 영상을 그레이스케일 정보와 색상 정보로 분리하여 처리할 때 유용합니다.
OpenCV에서 BGR2YCrCb 색 공간 변환 코드를 이용하여 8비트 BGR 영상을 YCrCb 영상으로 변환할 경우, Y, Cr, Cb 각각의 성분 값은 0부터 255 사이의 값으로 표현됩니다. 만약 cvtColor() 함수의 입력 영상이 0에서 1 사이 값으로 정규화된 CV_32FC3 타입의 행렬이라면 Y, Cr, Cb 각각의 성분 값도 0에서 1 사이의 실수 값으로 표현됩니다.
Y 성분을 128로 고정한 상태에서 Cr과 Cb 값에 따른 색상 표현을 그림 10-3에 나타냈습니다. HSV 색 공간에서는 H 값만을 이용하여 색 종류를 구분할 수 있지만 YCrCb 색 공간에서는 Cr과 Cb를 함께 조합하여 색을 구분할 수 있습니다.
▲ 그림 10-3 CrCb 색 분포(Y=128)
지금까지 설명한 BGR2GRAY, BGR2HSV, BGR2YCrCb 등의 색 공간 변환 코드에서 사용되는 색 공간 변환 공식에 대한 좀 더 자세한 설명은 OpenCV 문서 페이지를 참고하기 바랍니다.3