Main Content

adaptthresh

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

설명

예제

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

예제

T = adaptthresh(I,sensitivity)는 더 많은 픽셀을 전경으로 이진화하기 위한 감도 인자를 사용하여 국소 가변 임계값을 계산합니다.

예제

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

예제

모두 축소

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

I = imread('rice.png');

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

T = adaptthresh(I, 0.4);

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

BW = imbinarize(I,T);

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

figure
imshowpair(I, BW, 'montage')

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

I = imread('printedtext.png');

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

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

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

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

작업 공간에 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

임계값을 계산합니다.

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

입력 인수

모두 축소

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

adaptthresh 함수는 doublesingle 데이터형의 영상이 [0, 1] 범위의 값을 가질 것으로 예상합니다. I에 [0, 1] 범위 밖에 있는 값이 있는 경우 rescale 함수를 사용하여 값을 예상 범위로 다시 스케일링할 수 있습니다.

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

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

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

이름-값 인수

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

예: T = adaptthresh(I,0.4,ForegroundPolarity="dark");는 전경이 배경보다 더 어둡도록 지정합니다.

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

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

모두 확장