Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

bwlabel

2차원 이진 영상의 연결성분에 레이블 지정

설명

예제

L = bwlabel(BW)BW에서 찾은 8-연결 객체에 대한 레이블을 포함하는 레이블 행렬 L을 반환합니다.

선택적으로 GPU를 사용하여(Parallel Computing Toolbox™ 필요) 2차원 이진 영상의 연결성분에 레이블을 지정할 수 있습니다.

L = bwlabel(BW,conn)은 레이블 행렬을 반환합니다. 여기서 conn은 연결성을 지정합니다.

[L,n] = bwlabel(___)은 또한 BW에서 찾은 연결된 객체의 수인 n을 반환합니다.

예제

모두 축소

작은 이진 영상을 만듭니다.

BW = logical ([1     1     1     0     0     0     0     0
               1     1     1     0     1     1     0     0
               1     1     1     0     1     1     0     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     1     1     0
               1     1     1     0     0     0     0     0]);

4-연결 객체를 사용하여 레이블 행렬을 만듭니다.

L = bwlabel(BW,4)
L = 8×8

     1     1     1     0     0     0     0     0
     1     1     1     0     2     2     0     0
     1     1     1     0     2     2     0     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     3     3     0
     1     1     1     0     0     0     0     0

find 명령을 사용하여 레이블이 "2"로 지정된 객체의 행과 열 좌표를 가져옵니다.

[r, c] = find(L==2);
rc = [r c]
rc = 4×2

     2     5
     3     5
     2     6
     3     6

입력 인수

모두 축소

이진 영상으로, 2차원 숫자형 또는 논리형 행렬로 지정됩니다. 숫자형 입력값의 경우 0이 아닌 픽셀은 on으로 간주됩니다.

예: BW = imread('text.png');

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

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

의미

2차원 연결성

4-연결

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

8-연결

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

데이터형: double | logical

출력 인수

모두 축소

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

데이터형: double

BW 내의 연결된 객체의 수로, 음이 아닌 정수로 반환됩니다.

데이터형: double

  • 함수 bwlabel, bwlabelnbwconncomp는 모두 이진 영상의 연결성분을 계산합니다. bwconncomp를 사용하면 bwlabelbwlabeln 사용을 대체할 수 있습니다. 메모리 사용량이 현저히 적을 뿐 아니라, 때때로 다른 함수보다 속도가 더 빠릅니다.

     입력 차원출력 형식메모리 사용량연결성
    bwlabel2차원배정밀도 레이블 행렬높음4 또는 8
    bwlabelnN차원배정밀도 레이블 행렬높음임의
    bwconncompN차원CC 구조체낮음임의
  • MATLAB® find 함수를 bwlabel과 함께 사용하여 특정 객체를 구성하는 픽셀의 인덱스로 구성된 벡터를 반환할 수 있습니다. 예를 들어, 객체 2에 포함된 픽셀의 좌표를 반환하려면 다음을 입력하십시오.

    [r,c] = find(bwlabel(BW)==2)

    출력 행렬을 의사색상 인덱스 영상으로 표시할 수 있습니다. 각 객체가 다른 색으로 나타나므로, 원본 영상에서보다 객체를 구별하기가 더 쉽습니다. 자세한 내용은 label2rgb를 참조하십시오.

  • 메모리 효율성이 더 높은 데이터형(예: uint8형과 double형 비교)을 갖는 레이블 행렬을 계산하려면 bwconncomp의 출력값에 대해 labelmatrix 함수를 사용하십시오.

  • regionprops를 사용하여 디폴트 연결성으로 이진 영상에서 특징을 추출하려면 명령 regionprops(BW)를 사용하여 BWregionprops에 바로 전달하십시오.

  • bwlabel 함수는 데이터형 logical, uint8single에 대해서는 더 빠른 실행을 위해 하드웨어 최적화를 활용할 수 있습니다. 하드웨어 최적화를 사용하려면 markermask가 2차원 영상이어야 하고 conn은 4 또는 8이어야 합니다.

알고리즘

bwlabel은 참고 문헌 [1]의 40~48페이지에 설명된 다음과 같은 일반적인 절차를 사용합니다.

  1. 입력 영상에 반복 길이 부호화를 수행합니다.

  2. 반복된 부분(Run)을 확인하여, 임시 레이블을 할당하고 국소 등가표에 등가 레이블을 기록합니다.

  3. 등가 클래스를 정리합니다.

  4. 정리된 등가 클래스를 기반으로 반복된 부분(Run)에 레이블을 다시 할당합니다.

참고 문헌

[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume I, Addison-Wesley, 1992, pp. 28-48.

확장 기능

R2006a 이전에 개발됨