Image Binarization, Thresholding (영상 이진화, 임계값) - 1

영상 이진화에 관한 기본 지식과 배경에 대해 정리한다.


1. 영상 이진화란?

 영상 이진화는 한 픽셀당 8비트 기준으로 0~255 값을 갖는 이미지를 주어진 임계값을 기준으로 임계값 이하는 0, 초과는 1로 변환해주는 작업이다 (실질적으로 값은 0과 255로 주어진다).


2. 왜 영상 이진화를 하는가?

 영상 이진화를 하는 이유는 영상 처리와 인식의 계산을 빠르게 하기 위함이다. 24비트의 RGB888 영상의 경우 한 픽셀당 24비트 값을 갖는데 이는 0~16777216(대략 1600만)의 범위인데 영상 이진화를 하면 1600만의 경우의 수를 2의 경우 수로 바꾸어주니 픽셀당 800만배 빠른 분석이 가능하다. 보통 1280 * 720인 HD화질의 1초에 10프레임인 영상을 분석한다고 하면 1초당 필요한 계산의 수가 현저히 줄어든다.

RGB888 원본   : 1280 * 720 * 10 * 16777216 

RGB888 이진화 : 1280 * 720 * 10 * 2


3. RGB 이미지를 이진화 하는 방법은?

 RGB 이미지를 이진화 하는 방법은 먼저 RGB의 평균 값을 픽셀당 0~255 값인 흑백 이미지로 전환한 후, 임계값을 기준으로 픽셀 값을 0과 255로 변환한다.

 예를 들어 한 픽셀당 24비트인 RGB888의 경우 흑백 이미지의 픽셀 값은 X = (Xr + Xg + Xb)/3 과 같이 계산한 후, 임계값 100을 기준으로 100보다 작거나 같은 값은 0, 100보다 큰 값은 255로 전환한다.


4. 실제 RGB 이미지를 이진화 한다면?

 영상 인식에서 hello world와 같은 Lenna양의 이미지를 예제로 사용했다.

 이 유명한 Lenna양의 이미지에 관해 이야기 하자면 남자들은 잘 아는 플레이보이 잡지에 실린 사진의 한 부분이다. 실제 전체 이미지는 19금이다(Reference 사이트 참고). 1973년 USC전자공학과 조교수였던 Alexander Sawchuk가 동료의 컨퍼런스 발표자료로 식상하지 않고 다채로운 색상을 보여주는 사람의 얼굴 이미지를 찾고 있었는데 마침 플레이보이지 최근호의 Lenna이미지를 발견했다고 한다. 그 당시 사용하던 스캐너가 100dpi의 고정해상도를 가졌고 512x512 크기의 이미지를 원해서 만들어진 이미지가 바로 지금 전설의 Lenna이미지였다. 1996년 1월 IEEE Transactions on Image Processing의 편집장이던 David C.Muson은 레나 사진을 영상 처리에 널리 사용하는 이유에 대해 다음과 같이 밝혔다고 한다.

먼저, 레나 이미지는 세밀함과 평면, 그림자, 그리고 질감이 적절하게 조화되어 있어서 다양한 이미지 처리 알고리즘을 처리하는 데 좋다. 이 이미지는 정말 좋은 시험용 이미지이다. 둘째로, 레나 이미지는 매력적인 여성의 사진이다. 그러므로 이미지 처리 연구 분야 종사자들이 매력적이라고 느끼는 이미지에 끌리는 것은 대다수가 남자이기 때문에, 별로 놀라울 게 없다.

 사진의 실제 주인공인 레나 쇠데르베리는 1997년 50회 the Society for Imaging Science in Technology학회에 게스트로 초대받았다.


 다음은 비주얼 스튜디오에서 OpenCV 라이브러리를 이용해서 RGB 이미지를 Gray 이미지, Binary 이미지로 변환하는 방법에 대해서 정리하겠다.




컴퓨터 비전과 영상 처리에 대해서 독학을 하면서 정리한 걸 적고 있습니다.

전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.

추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^

- 푸어맨


[Reference]

(OpenCV C++ Thresholding) http://docs.opencv.org/3.2.0/db/d8e/tutorial_threshold.html

(OpenCV Python Thresholding) http://docs.opencv.org/3.2.0/d7/d4d/tutorial_py_thresholding.16777216

(다크 프로그래머 - 영상이진화) http://darkpgmr.tistory.com/115

(Lenna image) http://www.cs.cmu.edu/~chuck/lennapg/lenna.shtml

(Lenna Wiki) https://ko.wikipedia.org/wiki/%EB%A0%88%EB%82%98

+ Recent posts