Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

imbinarize

임계값을 지정하여 2차원 회색조 영상이나 3차원 볼륨 이진화

설명

예제

BW = imbinarize(I)는 전역적으로 적용되는 임계값보다 큰 값을 모두 1로 바꾸고 그 외 값은 모두 0으로 설정하여 2차원 또는 3차원 회색조 영상 I에서 이진 영상을 생성합니다. 기본적으로 imbinarize는 이진화된 검은색 픽셀과 흰색 픽셀의 클래스 내 분산을 최소화하기 위한 임계값을 선택하는 오츠(Otsu) 방법을 사용합니다 [1]. imbinarize는 256개 Bin을 갖는 영상 히스토그램을 사용하여 오츠 임계값을 계산합니다. 다른 히스토그램을 사용하려면 otsuthresh를 참조하십시오.

예제

BW = imbinarize(I,method)method로 지정된 이진화 방법("global" 또는 "adaptive")을 사용하여 영상 I에서 이진 영상을 생성합니다.

BW = imbinarize(I,T)는 임계값 T를 사용하여 영상 I에서 이진 영상을 생성합니다. T는 전역 영상 임계값(스칼라 휘도 값으로 지정됨)이거나, 국소 가변 임계값(휘도 값의 행렬로 지정됨)일 수 있습니다.

예제

BW = imbinarize(I,"adaptive",Name=Value)는 가변 이진화의 특성을 제어하는 이름-값 인수를 사용하여 영상 I에서 이진 영상을 생성합니다.

예제

모두 축소

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

I = imread('coins.png');

영상을 이진 영상으로 변환합니다.

BW = imbinarize(I);

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

figure
imshowpair(I,BW,'montage')

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

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

I = imread('rice.png');

회색조 영상을 이진 영상으로 변환합니다.

BW = imbinarize(I, 'adaptive');

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

figure
imshowpair(I,BW,'montage')

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

회색조 영상을 작업 공간으로 읽어 들인 후 이를 표시합니다.

I = imread('printedtext.png');
figure
imshow(I)
title('Original Image')

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

가변 이진화를 사용하여 영상을 이진 영상으로 변환합니다. ForegroundPolarity 파라미터를 사용하여 전경이 배경보다 더 어둡다는 것을 나타냅니다.

BW = imbinarize(I,'adaptive','ForegroundPolarity','dark','Sensitivity',0.4);

이진화를 한 영상을 표시합니다.

figure
imshow(BW)
title('Binary Version of Image')

Figure contains an axes object. The axes object with title Binary Version of Image contains an object of type image.

3차원 회색조 명암 데이터를 작업 공간으로 불러옵니다.

load mristack;
V = mristack;

3차원 볼륨을 표시합니다.

figure
slice(double(V),size(V,2)/2,size(V,1)/2,size(V,3)/2)
colormap gray 
shading interp

Figure contains an axes object. The axes object contains 3 objects of type surface.

명암 볼륨을 3차원 이진 볼륨으로 변환합니다.

J = imbinarize(V);

3차원 이진 볼륨을 표시합니다.

figure
slice(double(J),size(J,2)/2,size(J,1)/2,size(J,3)/2)
colormap gray 
shading interp

Figure contains an axes object. The axes object contains 3 objects of type surface.

입력 인수

모두 축소

입력 영상으로, 2차원 회색조 영상 또는 3차원 회색조 볼륨으로 지정됩니다. imbinarize에서 double형 및 single형의 픽셀 값은 [0, 1] 범위 내에 있어야 합니다. rescale 함수를 사용하여 픽셀 값을 예상 범위로 조정할 수 있습니다.

참고

imbinarize는 RGB 영상을 볼륨 회색조 영상으로 해석하며, 각각의 채널을 따로 이진화하지는 않습니다. RGB 영상에서 이진 영상을 생성하려면, 먼저 im2gray를 사용하여 영상을 회색조 영상으로 변환하십시오.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

영상 이진화에 사용되는 방법으로, 다음 값 중 하나로 지정됩니다.

의미

"global"

오츠 방법을 사용하여 전역 영상 임계값을 계산합니다. 오츠 방법에 대한 자세한 내용은 graythresh를 참조하십시오.

"adaptive"

각 픽셀 주위의 1차 국소 영상 통계량을 사용하여 결정되는 국소 가변 영상 임계값을 계산합니다. 자세한 내용은 adaptthresh를 참조하십시오. 영상에 Inf 또는 NaN이 포함된 경우에는 "adaptive" 방법에 대해 imbinarize의 동작이 정의되지 않습니다. Inf 또는 NaNInf 픽셀과 NaN 픽셀 주위 이웃 범위를 넘어서 퍼져있을 수 있기 때문입니다.

데이터형: char | string

휘도 임계값으로, 숫자형 스칼라 또는 값이 [0, 1] 범위 내에 있는 숫자형 배열로 지정됩니다.

  • T가 숫자형 스칼라이면 imbinarizeT를 전역 영상 임계값으로 해석합니다. 전역 영상 임계값을 계산하려면 graythresh 또는 otsuthresh를 사용하십시오.

  • T가 숫자형 배열이면 imbinarizeT를 국소 가변 임계값으로 해석합니다. 국소 가변 임계값을 계산하려면 adaptthresh를 사용하십시오.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: BW = imbinarize(I,"adaptive",Sensitivity=0.4);는 감도 인자를 0.4로 지정합니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: BW = imbinarize(I,"adaptive","Sensitivity",0.4);는 감도 인자를 0.4로 지정합니다.

가변 이진화의 감도 인자로, [0, 1] 범위의 숫자로 지정됩니다. 감도 값이 높으면 일부 배경 픽셀을 포함할 위험이 있지만 더 많은 픽셀을 전경으로 간주해 이진화합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

가변 이진화에서 전경 픽셀로 간주할 픽셀을 결정하는 방식으로, 다음 값 중 하나로 지정됩니다.

의미

"bright"

전경이 배경보다 더 밝습니다.

"dark"

전경이 배경보다 더 어둡습니다.

데이터형: char | string

출력 인수

모두 축소

출력 이진 영상으로, I와 같은 크기의 논리형 행렬 또는 논리형 배열로 반환됩니다.

데이터형: logical

  • 인덱스 영상에서 이진 영상을 생성하려면, 먼저 ind2gray를 사용하여 영상을 회색조 영상으로 변환하십시오.

알고리즘

"adaptive" 방법은 국소 가변 임계값을 사용하여 영상을 이진화합니다. imbinarize는 픽셀의 이웃 주위 국소 평균 명암 값을 사용하여 각 픽셀의 임계값을 계산합니다. 이 기법은 브래들리(Bradley) 방법이라고도 합니다 [2]. "adaptive" 방법은 또한 영상 크기의 약 1/8에 해당하는 이웃 크기(2*floor(size(I)/16)+1로 계산됨)를 사용합니다. 다른 1차 국소 통계량이나 다른 이웃 크기를 사용하려면 adaptthresh를 참조하십시오.

참고 문헌

[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.

[2] Bradley, D., G. Roth, "Adapting Thresholding Using the Integral Image," Journal of Graphics Tools. Vol. 12, No. 2, 2007, pp.13–21.

확장 기능

버전 내역

R2016a에 개발됨