주요 콘텐츠

bwareafilt

이진 영상에서 크기별로 객체 추출

설명

BW2 = bwareafilt(BW,range)는 이진 영상 BW로부터 range에 지정된 면적을 가지는 모든 연결성분(객체)을 추출하여 또 다른 이진 영상 BW2를 생성합니다. bwareafilt는 기준을 충족하는 객체만 포함한 이진 영상 BW2를 반환합니다.

예제

BW2 = bwareafilt(BW,n)은 가장 큰 n개의 객체만 남깁니다. n번째에서 동순위가 발생하면 처음 n개 객체만 BW2에 포함됩니다.

예제

BW2 = bwareafilt(BW,n,keep)n개의 최대 객체 또는 n개의 최소 객체만 남기도록 지정합니다.

BW2 = bwareafilt(___,conn)은 객체를 정의하는 픽셀 연결성을 지정합니다.

예제

모두 축소

영상을 읽어 들입니다.

BW = imread('text.png');

면적이 40에서 50 사이인 객체만 남도록 영상을 필터링합니다.

BW2 = bwareafilt(BW,[40 50]);

원본 영상과 필터링된 영상을 나란히 표시합니다.

imshowpair(BW,BW2,'montage')

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

영상을 읽어 들입니다.

BW = imread('text.png');

면적이 가장 큰 객체 5개만 남도록 영상을 필터링합니다.

BW2 = bwareafilt(BW,5);

원본 영상과 필터링된 영상을 나란히 표시합니다.

imshowpair(BW,BW2,'montage')

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

입력 인수

모두 축소

필터링할 이진 영상으로, 논리형 행렬로 지정됩니다.

데이터형: logical

면적의 최솟값 및 최댓값으로, [low high] 형식의, 요소를 2개 가진 숫자형 벡터로 지정됩니다.

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

크기를 기준으로 image 객체를 필터링할 때 포함할 객체의 개수로, 양의 정수로 지정됩니다.

데이터형: double

출력 영상에 포함할 객체의 크기로, "largest" 또는 "smallest"로 지정됩니다. n번째에서 동순위가 발생하면 bwareafilt는 처음 n개 객체만 포함합니다.

데이터형: char | string

픽셀 연결성으로, 다음 값 중 하나로 지정됩니다.

의미

2차원 연결성

4

경계가 서로 닿으면 픽셀이 연결됩니다. 두 개의 인접한 픽셀이 모두 켜져 있고 가로 또는 세로 방향으로 연결되어 있으면 두 픽셀은 동일한 객체에 속합니다.

Center pixel connected to four pixels

현재 픽셀은 회색으로 표시됩니다.

8

경계 또는 코너가 서로 닿으면 픽셀이 연결됩니다. 두 개의 인접한 픽셀이 모두 켜져 있고 가로, 세로 또는 대각선 방향으로 연결되어 있으면 두 픽셀은 동일한 객체에 속합니다.

Center pixel connected to eight pixels

현재 픽셀은 회색으로 표시됩니다.

01로 구성된 3×3 행렬을 지정하여 더 일반적인 방식으로 연결성을 정의할 수도 있습니다. 값이 1인 요소는 conn의 중앙 요소를 기준으로 하여 이웃 픽셀의 위치를 정의합니다. 행렬은 그 중앙 요소를 기준으로 대칭이어야 합니다.

데이터형: double | logical

출력 인수

모두 축소

필터링된 영상으로, 입력 영상 BW와 크기가 같은 논리형 행렬로 반환됩니다.

확장 기능

모두 확장

버전 내역

R2014b에 개발됨

모두 확장