Main Content

bwskel

모든 객체를 2차원 이진 영상 또는 3차원 이진 볼륨의 선으로 축소

설명

예제

B = bwskel(A)는 영상의 기본 구조체를 변경하지 않고 2차원 이진 영상 A의 모든 객체를 1픽셀 너비의 곡선으로 축소합니다. 골격화라고 하는 이 프로세스는 객체의 위상과 오일러 수(오일러 지표라고도 함)를 보존하면서 중심선을 추출합니다.

예제

B = bwskel(V)는 3차원 이진 볼륨의 골격을 반환합니다.

B = bwskel(___,'MinBranchLength',N)은 골격의 최소 가지 길이 N을 지정합니다. bwskel은 지정된 길이보다 짧은 모든 가지를 제거(가지치기)합니다. bwskel은 2차원의 경우 8-연결성을 사용하고 3차원의 경우 26-연결성을 사용하여 가지의 픽셀 수로 길이를 계산합니다.

예제

모두 축소

2차원 회색조 영상을 작업 공간으로 읽어 들입니다. 영상을 표시합니다. 관심 객체는 밝은 배경에서 어둡게 보이는 실 가닥입니다.

I = imread('threads.png');
imshow(I)

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

골격화에는 전경 픽셀이 1(흰색)이고 배경이 0(검은색)인 이진 영상이 필요합니다. 원본 영상을 골격화하기 좋게 만들려면 영상을 색 반전하여 객체가 밝고 배경이 어둡게 합니다. 그런 다음 결과를 이진화합니다.

Icomplement = imcomplement(I);
BW = imbinarize(Icomplement);
imshow(BW)

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

bwskel을 사용하여 이진 영상에 대해 골격화를 수행합니다.

out = bwskel(BW);

labeloverlay 함수를 사용하여 원래 영상 위에 골격을 표시합니다. 골격은 어둡게 보이는 실 가닥 위에 1픽셀 너비의 파란색 선으로 표시됩니다.

imshow(labeloverlay(I,out,'Transparency',0))

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

골격에 표시되는 작은 스퍼를 가지치기하고 결과를 봅니다. 영상의 중심 근처에 있는 실 가닥에서 하나의 짧은 가지가 가지치기됩니다.

out2 = bwskel(BW,'MinBranchLength',15);
imshow(labeloverlay(I,out2,'Transparency',0))

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

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

BW1 = imread('circbw.tif');

bwskel 함수를 사용하여 영상에서 객체를 골격화합니다.

BW2 = bwskel(BW1);

원본 영상과 골격화된 영상을 나란히 봅니다.

montage({BW1,BW2},'BackgroundColor','blue','BorderSize',5)

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

볼륨 데이터 세트를 작업 공간으로 불러옵니다. 데이터 세트의 이름은 spiralVol입니다. volshow를 사용하여 볼륨을 표시합니다.

load spiralVol.mat
volshow(spiralVol);

spiralVol 데이터 세트를 bwskel 함수에 필요한 이진 형식으로 변환합니다.

spiralVolLogical = imbinarize(spiralVol);

데이터 세트에서 나선형 모양을 골격화합니다. volshow를 사용하여 골격화된 볼륨을 표시합니다.

spiralVolSkel = bwskel(spiralVolLogical);
volshow(spiralVolSkel);

.

입력 인수

모두 축소

이진 영상으로, 2차원 논리형 행렬로 지정됩니다.

데이터형: logical

3차원 이진 볼륨으로, 3차원 논리형 배열로 지정됩니다.

데이터형: logical

최소 가지 길이로, 음이 아닌 정수로 지정됩니다. bwskelN보다 짧은 가지를 가지치기합니다. 기본적으로 bwskel은 가지를 가지치기하지 않습니다.

출력 인수

모두 축소

골격화된 영상 또는 볼륨으로, 입력 영상 또는 볼륨과 크기가 같은 2차원 논리형 행렬 또는 3차원 논리형 배열로 반환됩니다.

  • bwskelbwmorph는 모두 2차원 영상을 골격화할 수 있지만 bwmorph를 사용하면 bwskel을 사용할 때와 결과가 다를 수 있습니다. 서로 다른 알고리즘을 사용하기 때문에 bwskel 함수는 2차원 영상과 4-연결성을 사용하고 bwmorph는 8-연결성을 사용합니다.

  • bwskel은 이진 영상의 전경 객체가 흰색이라고 가정합니다(논리형 true). 영상에 흰색 배경과 검은색 객체가 있는 경우 영상의 색 반전을 bwskel에 대한 입력으로 사용합니다. imcomplement를 사용하여 색 반전을 계산할 수 있습니다.

알고리즘

  • bwskel 함수는 중앙 축 변환을 사용합니다.

참고 문헌

[1] Ta-Chih Lee, Rangasami L. Kashyap and Chong-Nam Chu. Building skeleton models via 3-D medial surface/axis thinning algorithms. Computer Vision, Graphics, and Image Processing, 56(6):462-478, 1994.

[2] Kerschnitzki, M, Kollmannsberger, P, Burghammer, M. et al. Architecture of the osteocyte network correlates with bone material quality. Journal of Bone and Mineral Research, 28(8):1837-1845, 2013.

확장 기능

버전 내역

R2018a에 개발됨

모두 확장

참고 항목

|