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')

Figure contains an axes object. The hidden axes object contains an object of type image.

입력 인수

모두 축소

회색조 영상으로, 임의 차원의 숫자형 배열로 지정됩니다. 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 이전에 개발됨

모두 확장