Main Content

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

adaptthresh

1차 국소 통계량을 사용하여 영상의 가변 임계값 구하기

설명

예제

T = adaptthresh(I)는 2차원 회색조 영상 또는 3차원 회색조 볼륨 I의 국소 가변 임계값을 계산합니다. adaptthresh 함수는 각 픽셀 이웃의 국소 평균 명암 값(1차 통계량)에 따라 임계값을 선택합니다. 임계값 Timbinarize 함수와 함께 사용하여 회색조 영상을 이진 영상으로 변환할 수 있습니다.

예제

T = adaptthresh(I,sensitivity)sensitivity로 지정된 감도 인자를 사용하여 국소 가변 임계값을 계산합니다. sensitivity는 [0,1] 범위의 스칼라이며, 더 많은 픽셀을 전경으로 이진화하기 위한 감도를 나타냅니다.

예제

T = adaptthresh(___,Name,Value)는 이진화의 특성을 제어하기 위해 이름-값 쌍을 사용하여 국소 가변 임계값을 계산합니다.

예제

모두 축소

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

I = imread('rice.png');

adaptthresh를 사용하여 이진화 연산에 사용할 임계값을 계산합니다.

T = adaptthresh(I, 0.4);

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

BW = imbinarize(I,T);

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

figure
imshowpair(I, BW, 'montage')

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

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

I = imread('printedtext.png');

adaptthresh를 사용하여 가변 임계값을 계산하고 국소 임계값 영상을 표시합니다. 이 영상은 배경의 평균 조도를 추정한 결과를 나타냅니다.

T = adaptthresh(I,0.4,'ForegroundPolarity','dark');
figure
imshow(T)

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

국소 가변 임계값을 사용하여 영상을 이진화합니다.

BW = imbinarize(I,T);
figure
imshow(BW)

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

작업 공간에 3차원 볼륨을 불러옵니다.

load mristack;
V = mristack;

데이터를 표시합니다.

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

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

임계값을 계산합니다.

J = adaptthresh(V,'neigh',[3 3 3],'Fore','bright');

임계값을 표시합니다.

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

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

입력 인수

모두 축소

회색조 영상 또는 볼륨으로, 2차원 숫자형 행렬 또는 3차원 숫자형 배열로 지정됩니다.

영상에 Inf 또는 NaN이 포함된 경우에는 adaptthresh의 동작이 정의되지 않습니다. Inf 또는 NaN의 전파는 해당 Inf 픽셀과 NaN 픽셀 주위의 이웃으로 국한되지 않을 수 있습니다.

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

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

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

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: T = adaptthresh(I,0.4,'ForegroundPolarity','dark');

각 픽셀 주위의 국소 통계량을 계산하는 데 사용되는 이웃의 크기로, 양의 홀수 정수 또는 양의 홀수 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다.

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

전경 픽셀로 간주할 픽셀을 결정하는 기준으로, 다음 중 하나를 사용하여 지정됩니다.

의미

'bright'

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

'dark'

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

데이터형: char | string

각 픽셀의 국소 임계값을 계산하는 데 사용되는 통계량으로, 다음 중 하나로 지정됩니다.

의미

'mean'

이웃의 국소 평균 명암. 이 기법은 브래들리(Bradley) 방법이라고도 합니다 [1].

'median'

이웃의 국소 중앙값. 이 통계량은 계산 속도가 느릴 수 있습니다. 더 빠른 결과를 얻으려면 더 작은 크기의 이웃을 사용해 보십시오.

'gaussian'

이웃의 가우스 가중 평균.

데이터형: char | string

출력 인수

모두 축소

정규화된 명암 값으로, 입력 영상 또는 입력 볼륨 I와 같은 크기의 숫자형 행렬 또는 숫자형 배열로 반환됩니다. 이 값들은 범위 [0, 1]로 정규화됩니다.

데이터형: double

참고 문헌

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

확장 기능

R2016a에 개발됨