Main Content

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

모두 확장