Main Content

labelmatrix

연결성분의 구조체에서 레이블 행렬 생성

설명

레이블 행렬은 이진 영상에 있는 객체 또는 연결성분에 고유 정수 값을 할당합니다. 레이블 행렬을 사용하여 서로 다른 객체 또는 연결성분을 시각화할 수 있습니다.

L = labelmatrix(CC)는 연결성분 구조체 CC에서 레이블 행렬 L을 만듭니다.

예제

예제

모두 축소

이진 영상을 작업 공간으로 읽어 들입니다. 영상을 표시합니다.

BW = imread('text.png');
imshow(BW)

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

bwconncomp를 사용하여 연결성분을 계산합니다.

CC = bwconncomp(BW);

labelmatrix를 사용하여 레이블 행렬을 만듭니다. 각 레이블에는 고유한 숫자형 인덱스가 있습니다.

L = labelmatrix(CC);

레이블 행렬의 최댓값을 구합니다. 이 값은 검출된 객체 수를 나타냅니다. 이 경우에는 88입니다.

numObjects = max(L(:))
numObjects = uint8

88

레이블 행렬을 영상으로 표시합니다. 최대 레이블 값이 uint8 데이터형의 최댓값보다 훨씬 작기 때문에, 레이블의 변별성을 높이기 위해 영상의 표시 범위를 늘립니다.

imshow(L,[])

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

작은 레이블 값으로 레이블이 지정된 객체들은 잘 안 보입니다. 그뿐만 아니라 레이블 값이 비슷한 객체들을 서로 구별하기도 힘듭니다. 서로 다른 연결성분을 더 쉽게 구별할 수 있도록 label2rgb를 사용하여 레이블 행렬을 RGB 영상으로 표시하고 레이블의 색 순서를 섞습니다.

imshow(label2rgb(L,'jet','k','shuffle'));

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

입력 인수

모두 축소

연결성분으로, 네 개의 필드를 갖는 구조체로 지정됩니다. bwpropfilt 또는 bwconncomp 함수를 사용하여 연결성분 구조체를 가져올 수 있습니다.

필드설명
Connectivity연결성분(객체)에 대한 연결성
ImageSize이진 영상 크기
NumObjects이진 영상의 연결성분(객체) 개수
PixelIdxListNumObjects 셀형 배열. 이 셀형 배열의 k번째 요소는 k번째 객체에 있는 픽셀의 선형 인덱스를 포함하는 벡터입니다.

출력 인수

모두 축소

인접 영역의 레이블 행렬로, 음이 아닌 정수로 구성된 행렬로 반환됩니다. 0으로 레이블이 지정된 픽셀은 배경입니다. 1로 레이블이 지정된 픽셀이 첫 번째 객체가 되고, 2로 레이블이 지정된 픽셀이 두 번째 객체가 되는 방식입니다.

L의 크기는 CC.ImageSize 필드 값에 의해 결정됩니다. L의 클래스는 연속 영역 수에 따라 다릅니다. 다음 표에 나와 있는 것처럼, labelmatrix는 객체 수 CC.NumObjects를 표현할 수 있는 가장 작은 데이터형을 사용합니다.

데이터형범위
uint8

CC.NumObjects ≤ 255

uint16

256 ≤ CC.NumObjects ≤ 65535

uint32

65536 ≤ CC.NumObjects ≤ 232 – 1

double

CC.NumObjects ≥ 232

데이터형: double | uint8 | uint16 | uint32

버전 내역

R2009a에 개발됨