11.1.2 적응형 이진화
앞 절에서 설명한 threshold() 함수는 지정한 임계값을 영상 전체 픽셀에 동일하게 적용하여 이진화 영상을 생성합니다. 이처럼 영상의 모든 픽셀에 같은 임계값을 적용하여 이진화를 수행하는 방식을 전역 이진화(global binarization)라고 합니다. 그런데 영상의 특성에 따라서 전역 이진화를 적용하기 어려운 경우가 있습니다. 예를 들어 균일하지 않은 조명 환경에서 촬영된 영상에 대해 전역 이진화를 수행하면 객체와 배경이 적절하게 분리되지 않는 경우가 발생합니다.
그림 11-6은 불균일한 조명 환경에서 촬영된 sudoku.jpg 스도쿠 퍼즐 영상을 입력으로 사용하여 코드 11-1의 threshold 예제 프로그램을 실행한 결과 화면입니다.4 그림 11-6(a)는 입력 영상인 sudoku.jpg 파일입니다. 이 영상은 왼편 아래쪽 영역이 다소 어둡게 촬영되었지만 사람의 눈으로는 스도쿠 퍼즐의 사각형 직선과 숫자를 잘 구분할 수 있습니다. 이 영상에 임계값 100을 적용하여 이진화를 수행한 결과를 그림 11-6(b)에 나타냈습니다. 스도쿠 영상의 우측 상단 숫자는 제대로 이진화가 되어 분간이 가능하지만, 영상의 좌측 하단은 전반적으로 검은색으로 이진화되어 숫자를 읽을 수 없었습니다. 그림 11-6(c)는 트랙바의 임계값을 50으로 설정했을 때 이진화 결과입니다. 좌측 하단의 스도쿠 숫자까지 제대로 이진화가 수행되었지만, 반대로 오른쪽 상단의 숫자가 매우 흐려지고 스도쿠 퍼즐의 사각형 직선이 심하게 끊어지는 현상이 발생하였습니다.
▲ 그림 11-6 불균일한 조명 환경에서 촬영된 영상의 전역 이진화
4 코드 11-1의 threshold 예제 프로그램은 명령행 인자를 지원하므로 콘솔 창에서 ‘threshold.exe sudoku.jpg’라고 입력하여 실행합니다. threshold.exe 파일과 sudoku.jpg 파일은 같은 폴더에 있어야 합니다.