코드 10-6에서 기준 영상으로부터 CrCb 색 평면에서의 2차원 히스토그램을 구하는 과정을 그림 10-11에 나타냈습니다. 그림 10-11(a)는 피부색이 많이 포함된 기준 영상이고, 그림 10-11(b)는 기준 영상에서 실제로 피부색이 나타난 영역만 흰색으로 표시한 마스크 영상입니다. 마스크 영상은 포토샵 같은 영상 편집 툴을 이용하여 미리 생성하였습니다. 이 두 영상을 이용하여 기준 영상에서 피부색 영역의 CrCb 히스토그램을 구하고, 그 결과를 그레이스케일 영상 형식으로 나타낸 결과가 그림 10-11(c)입니다. 그림 10-11(c)에서 밝게 나타나는 부분이 CrCb 평면에서 피부색을 표현하는 영역입니다.
▲ 그림 10-11 기준 영상과 마스크 영상을 이용하여 피부색 CrCb 히스토그램 구하기
코드 10-6의 backproj 프로그램 실행 결과를 그림 10-12에 나타냈습니다. 그림 10-12에서 src는 입력 영상인 kids.png 파일이고, backproj는 히스토그램 역투영을 통해 구한 피부색 영역입니다. calcBackProject() 함수가 반환하는 backproj 영상은 CV_8UC1 타입이므로 imshow() 함수를 이용하여 쉽게 화면에 나타낼 수 있습니다. backproj 영상에서 밝은 회색 또는 흰색으로 표시된 영역은 입력 영상의 픽셀 값이 지정한 히스토그램에서 높은 빈도수로 표현됨을 의미합니다. 반대로 backproj 영상에서 어두운 회색 또는 검은색으로 표시된 영역은 해당 위치의 입력 영상 픽셀 값이 지정한 히스토그램에서 빈도수가 낮거나 0임을 나타냅니다.
▲ 그림 10-12 히스토그램 역투영을 이용한 피부색 영역 검출 예제 실행 결과