Main Content

bwlabeln

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

설명

L = bwlabeln(BW)BW의 연결성분에 대한 레이블이 포함된 레이블 행렬 L을 반환합니다.

예제

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

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

예제

모두 축소

간단한 샘플 3차원 이진 영상을 만듭니다.

BW = cat(3, [1 1 0; 0 0 0; 1 0 0],...
            [0 1 0; 0 0 0; 0 1 0],...
            [0 1 1; 0 0 0; 0 0 1])
BW = 
BW(:,:,1) =

     1     1     0
     0     0     0
     1     0     0


BW(:,:,2) =

     0     1     0
     0     0     0
     0     1     0


BW(:,:,3) =

     0     1     1
     0     0     0
     0     0     1

영상의 연결성분에 레이블을 지정합니다.

bwlabeln(BW)
ans = 
ans(:,:,1) =

     1     1     0
     0     0     0
     2     0     0


ans(:,:,2) =

     0     1     0
     0     0     0
     0     2     0


ans(:,:,3) =

     0     1     1
     0     0     0
     0     0     2

입력 인수

모두 축소

이진 영상으로, 임의 차원의 숫자형 또는 논리형 배열로 지정됩니다. 숫자형 입력값의 경우 0이 아닌 픽셀은 1(true)로 간주됩니다.

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

픽셀 연결성으로, 다음 표에 있는 값 중 하나로 지정됩니다. 디폴트 연결성은 2차원 영상의 경우 8, 3차원 영상의 경우 26입니다.

의미

2차원 연결성

4

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

Center pixel connected to four pixels

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

8

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

Center pixel connected to eight pixels

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

3차원 연결성

6

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

  • 안쪽, 바깥쪽, 왼쪽, 오른쪽, 위쪽, 아래쪽 방향 중 하나

Center pixel connected to the faces of 6 pixels

현재 픽셀은 큐브의 중앙입니다.

18

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

  • 안쪽, 바깥쪽, 왼쪽, 오른쪽, 위쪽, 아래쪽 방향 중 하나

  • 두 방향의 조합(예: 오른쪽-아래쪽 또는 안쪽-위쪽)

Center pixel connected to the faces of 6 pixels and the edges of 12 pixels

현재 픽셀은 큐브의 중앙입니다.

26

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

  • 안쪽, 바깥쪽, 왼쪽, 오른쪽, 위쪽, 아래쪽 방향 중 하나

  • 두 방향의 조합(예: 오른쪽-아래쪽 또는 안쪽-위쪽)

  • 세 방향의 조합(예: 안쪽-오른쪽-위쪽 또는 안쪽 -왼쪽-아래쪽)

Center pixel connected to the faces of 6 pixels, the edges of 12 pixels, and the corners of 8 pixels

현재 픽셀은 큐브의 중앙입니다.

더 높은 차원의 경우, bwlabeln은 디폴트 값 conndef(ndims(BW),'maximal')을 사용합니다.

01로 구성된 3×3×...×3 행렬을 지정하여 모든 차원에 대해 더 일반적인 방식으로 연결성을 정의할 수도 있습니다. 값이 1인 요소는 conn의 중앙 요소를 기준으로 하여 이웃 픽셀의 위치를 정의합니다. conn은 그 중앙 요소를 기준으로 대칭이어야 합니다. 자세한 내용은 Specifying Custom Connectivities 항목을 참조하십시오.

데이터형: double | logical

출력 인수

모두 축소

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

데이터형: double

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

데이터형: double

  • 이 함수는 각 성분의 top-left 극값을 기준으로 연결성분을 왼쪽에서 오른쪽으로 정렬합니다. 여러 성분이 동일한 가로 위치를 갖는 경우 함수는 해당 성분을 위에서 아래로 정렬하고 더 높은 차원을 따라 다시 정렬합니다. 아래 그림은 서로 다른 두 2차원 영역의 극점을 보여줍니다.

    Two differently shaped regions, each with their eight extrema points labeled

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

    함수입력 차원출력 형식메모리 사용량연결성
    bwlabel2차원배정밀도 레이블 행렬높음4 또는 8
    bwlabelnN차원배정밀도 레이블 행렬높음임의
    bwconncompN차원CC 구조체낮음임의
  • regionprops를 사용하여 디폴트 연결성으로 이진 영상에서 특징을 추출하려면 명령 regionprops(BW)를 사용하여 BWregionprops에 바로 전달하십시오.

알고리즘

bwlabeln은 다음과 같은 일반적인 절차를 사용합니다.

  1. 모든 영상 픽셀을 확인하여, 임시 레이블을 0이 아닌 픽셀에 할당하고 합집합 찾기 표에 등가 레이블을 기록합니다.

  2. 합집합 찾기 알고리즘[1]을 사용하여 등가 클래스를 정리합니다.

  3. 정리된 등가 클래스를 기반으로 픽셀에 레이블을 다시 할당합니다.

참고 문헌

[1] Sedgewick, Robert, Algorithms in C, 3rd Ed., Addison-Wesley, 1998, pp. 11-20.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장