Main Content

graythresh

오츠(Otsu) 방법을 사용한 전역 영상 이진화

설명

예제

T = graythresh(I)는 오츠 방법 [1]을 사용하여 회색조 영상 I에서 전역 임계값 T를 계산합니다. 오츠 방법은 이진화된 흑백 픽셀의 클래스 내 분산을 최소화하는 임계값을 선택합니다. 전역 임계값 Timbinarize와 함께 사용하여 회색조 영상을 이진 영상으로 변환할 수 있습니다.

[T,EM] = graythresh(I)는 효용성 메트릭 EM도 반환합니다.

예제

모두 축소

회색조 영상을 작업 공간으로 읽어 들입니다.

I = imread('coins.png');

graythresh를 사용하여 임계값을 계산합니다. 임계값은 [0, 1] 범위로 정규화됩니다.

level = graythresh(I)
level = 0.4941

임계값을 사용하여 영상을 이진 영상으로 변환합니다.

BW = imbinarize(I,level);

원본 영상과 이진 영상을 나란히 표시합니다.

imshowpair(I,BW,'montage')

입력 인수

모두 축소

회색조 영상으로, 임의 차원의 숫자형 배열로 지정됩니다. graythresh 함수는 doublesingle 데이터형의 영상이 [0, 1] 범위의 값을 가질 것으로 예상합니다. I에 [0, 1] 범위 밖에 있는 값이 있는 경우 rescale 함수를 사용하여 값을 예상 범위로 다시 스케일링할 수 있습니다.

데이터형: single | double | int16 | uint8 | uint16

출력 인수

모두 축소

전역 임계값으로, [0, 1] 범위의 음이 아닌 숫자로 반환됩니다.

데이터형: double

임계값의 효용성 메트릭으로, [0, 1] 범위의 음이 아닌 숫자로 반환됩니다. 하한값은 단일 회색 레벨을 갖는 영상에서만 구할 수 있고, 상한값은 두 개의 값을 갖는 영상에서만 구할 수 있습니다.

데이터형: double

  • 기본적으로 함수 imbinarize는 오츠(Otsu) 방법을 통해 얻은 임계값을 사용하여 이진 영상을 생성합니다. 이 디폴트 임계값은 graythresh에서 반환된 임계값과 동일합니다. 그러나 imbinarize는 이진 영상만 반환합니다. 레벨이나 효용성 메트릭을 알고 싶은 경우에는 imbinarize를 호출하기 전에 graythresh를 사용하십시오.

참고 문헌

[1] Otsu, N., "A Threshold Selection Method from Gray-Level Histograms." IEEE Transactions on Systems, Man, and Cybernetics. Vol. 9, No. 1, 1979, pp. 62–66.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장