더북(TheBook)

코드 11-1의 threshold 예제 프로그램 실행 결과를 그림 11-5에 나타냈습니다. 그림 11-5(a)는 입력 영상으로 사용한 neutrophils.png 파일입니다. 그림 11-5(b)는 dst 창의 트랙바 위치를 85로 설정하였을 때 이진화 결과입니다. 즉, 임계값을 85로 설정하여 입력 영상을 이진화한 결과이며, 입력 영상에서 어둡게 염색된 세포 영역만 결과 영상에서 검은색으로 표시되었습니다. 그림 11-5(c)는 트랙바 위치를 230으로 설정하였을 경우의 이진화 결과이며, 입력 영상에서 세포 영역은 검은색으로, 배경 영역은 흰색으로 이진화되었습니다. 코드 11-1의 threshold 예제 프로그램은 트랙바 인터페이스를 이용하여 프로그램 동작 중 임계값을 조절할 수 있으므로 편리하게 이진화 결과를 확인할 수 있습니다.

▲ 그림 11-5 트랙바를 이용한 이진화 예제 프로그램 실행 결과

 

Note

OpenCV에서는 Mat 영상을 부등호 연산자 재정의를 이용하여 간단하게 이진화할 수 있습니다. 예를 들어 lenna.bmp 영상에 대해 임계값 128을 이용하여 이진화하려면 다음과 같이 코드를 작성할 수 있습니다.

Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE);
Mat dst = src > 128;

이 코드는 src 영상의 각 픽셀 값과 정수 128의 크기를 비교하여 결과가 참인 위치에서만 dst 영상 픽셀 값을 255로 설정합니다. 크기 비교 결과가 거짓인 위치에서는 dst 픽셀 값을 0으로 설정합니다. 그리고 dst 영상의 깊이는 CV_8U로 설정됩니다. 그러므로 dst 영상은 0 또는 255 픽셀 값으로 구성된 그레이스케일 이진 영상입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.