이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

imbinarize

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

구문

BW = imbinarize(I)
BW = imbinarize(I,method)
BW = imbinarize(I,T)
BW = imbinarize(I,'adaptive',Name,Value)
J = imbinarize(V,___)

설명

예제

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

예제

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

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

예제

BW = imbinarize(I,'adaptive',Name,Value)는 적응형 이진화의 특성을 제어하는 이름-값 쌍을 사용하여 영상 I에서 이진 영상을 생성합니다.

예제

J = imbinarize(V,___)는 회색조 영상에 대한 구문과 동일한 디폴트 값을 사용하여 볼륨 V를 이진화합니다. imbinarize는 전역 이진화와 적응형 이진화에 대해 모두 3차원 이진 변환을 지원합니다. J는 출력 이진 볼륨입니다.

예제

모두 축소

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

I = imread('coins.png');

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

BW = imbinarize(I);

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

figure
imshowpair(I,BW,'montage')

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

I = imread('rice.png');

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

BW = imbinarize(I, 'adaptive');

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

figure
imshowpair(I,BW,'montage')

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

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

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

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

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

figure
imshow(BW)
title('Binary Version of 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

명암 볼륨을 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

입력 인수

모두 축소

입력 회색조 영상으로, 비희소 형식의 2차원 실수 행렬로 지정됩니다.

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

영상 이진화에 사용되는 방법으로, 다음 값 중 하나로 지정됩니다(이름은 축약형일 수 있음).

의미

'global'

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

'adaptive'

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

데이터형: char | string

임계값으로, 스칼라 휘도 값 또는 휘도 값으로 구성된 행렬로 지정됩니다. T가 스칼라 휘도 값이면 imbinarize는 이를 전역 영상 임계값으로 해석합니다. T가 휘도 값으로 구성된 행렬이면 imbinarize는 이를 국소 가변 임계값으로 해석합니다. T01 사이의 값을 가져야 합니다. T가 행렬인 경우, 이는 I와 크기가 동일해야 합니다. T를 계산하려면 함수 graythresh, otsuthresh 또는 adaptthresh를 사용하십시오.

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

입력 볼륨으로, 비희소 형식의 3차원 실수 배열로 지정됩니다.

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

이름-값 쌍의 인수

예: BW = imbinarize(I,'adaptive','Sensitivity',0.4);

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

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

전경 픽셀로 간주할 픽셀을 결정하는 방식으로, 다음 값 중 하나로 지정됩니다.

의미

'bright'

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

'dark'

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

데이터형: char | string

출력 인수

모두 축소

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

출력 이진 볼륨으로, V와 같은 크기의 논리형 배열로 반환됩니다.

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

  • RGB 영상에서 이진 영상을 생성하려면, 먼저 rgb2gray를 사용하여 영상을 회색조 명암 영상으로 변환하십시오.

  • imbinarize를 사용할 때 부동소수점 영상은 범위 [0,1]에서 정규화되어야 합니다.

알고리즘

'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에 개발됨