adaptthresh
1차 국소 통계량을 사용하여 영상의 가변 임계값 구하기
설명
는 더 많은 픽셀을 전경으로 이진화하기 위한 감도 인자를 사용하여 국소 가변 임계값을 계산합니다.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차원 볼륨에 대한 임계값 계산하기
작업 공간에 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
입력 인수
I
— 회색조 영상 또는 볼륨
2차원 숫자형 행렬 | 3차원 숫자형 배열
회색조 영상 또는 볼륨으로, 2차원 숫자형 행렬 또는 3차원 숫자형 배열로 지정됩니다.
adaptthresh
함수는 double
및 single
데이터형의 영상이 [0, 1] 범위의 값을 가질 것으로 예상합니다. I
에 [0, 1] 범위 밖에 있는 값이 있는 경우 rescale
함수를 사용하여 값을 예상 범위로 다시 스케일링할 수 있습니다.
영상에 Inf
또는 NaN
값이 있는 경우에는 adaptthresh
의 동작이 정의되지 않습니다. Inf
또는 NaN
값의 전파는 해당 Inf
픽셀과 NaN
픽셀 주위의 이웃으로 국한되지 않을 수 있습니다.
데이터형: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
sensitivity
— 전경 픽셀로 이진화할 픽셀을 결정
0.5
(디폴트 값) | [0, 1] 범위의 숫자
전경 픽셀로 이진화할 픽셀을 결정하며, [0, 1] 범위의 숫자로 지정됩니다. 감도 값이 높으면 일부 배경 픽셀을 포함할 위험이 있지만, 더 많은 픽셀을 전경으로 간주해 이진화합니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
예: T = adaptthresh(I,0.4,ForegroundPolarity="dark");
는 전경이 배경보다 더 어둡도록 지정합니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: T = adaptthresh(I,0.4,"ForegroundPolarity","dark");
는 전경이 배경보다 더 어둡도록 지정합니다.
NeighborhoodSize
— 각 픽셀 주위의 국소 통계량을 계산하는 데 사용되는 이웃의 크기
2*floor(size(I)/16)+1
(디폴트 값) | 양의 홀수 정수 | 양의 홀수 정수로 구성된 요소를 2개 가진 벡터
각 픽셀 주위의 국소 통계량을 계산하는 데 사용되는 이웃의 크기로, 양의 홀수 정수 또는 양의 홀수 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ForegroundPolarity
— 전경 픽셀로 간주할 픽셀을 결정하는 기준
"bright"
(디폴트 값) | "dark"
전경 픽셀로 간주할 픽셀을 결정하는 기준으로, 다음 중 하나를 사용하여 지정됩니다.
값 | 의미 |
---|---|
| 전경이 배경보다 더 밝습니다. |
| 전경이 배경보다 더 어둡습니다. |
데이터형: char
| string
Statistic
— 국소 임계값을 계산하는 데 사용되는 통계량
"mean"
(디폴트 값) | "median"
| "gaussian"
각 픽셀의 국소 임계값을 계산하는 데 사용되는 통계량으로, 다음 중 하나로 지정됩니다.
값 | 의미 |
---|---|
| 이웃의 국소 평균 명암. 이 기법은 브래들리(Bradley) 방법이라고도 합니다 [1]. |
| 이웃의 국소 중앙값. 이 통계량은 계산 속도가 느릴 수 있습니다. 더 빠른 결과를 얻으려면 더 작은 크기의 이웃을 사용해 보십시오. |
| 이웃의 가우스 가중 평균. |
데이터형: char
| string
출력 인수
참고 문헌
[1] Bradley, D., G. Roth, "Adapting Thresholding Using the Integral Image," Journal of Graphics Tools. Vol. 12, No. 2, 2007, pp.13–21.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
adaptthresh
함수는 C 코드 생성을 지원합니다(MATLAB® Coder™가 필요함). 일반적인MATLAB Host Computer
타깃 플랫폼을 선택할 경우adaptthresh
함수는 미리 컴파일된 플랫폼별 공유 라이브러리를 사용하는 코드를 생성합니다. 공유 라이브러리를 사용하면 성능 최적화가 유지되지만 코드를 생성할 수 있는 타깃 플랫폼이 제한됩니다. 자세한 내용은 Types of Code Generation Support in Image Processing Toolbox 항목을 참조하십시오.ForegroundPolarity
및Statistic
인수는 컴파일타임 상수여야 합니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
ForegroundPolarity
및 Statistic
인수는 컴파일타임 상수여야 합니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2016a에 개발됨R2022b: GPU Coder를 사용하여 CUDA 코드 생성
이제 adaptthresh
함수는 최적화된 CUDA® 코드 생성을 지원합니다(GPU Coder™가 필요함).
R2021b: 스레드 기반 환경 지원
adaptthresh
함수는 이제 스레드 기반 환경을 지원합니다.
참고 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)