2012-10-18 6 views
3

나는 세분화 과정을 거친 볼륨 (3D 매트릭스)을 가지고 있습니다. 대부분의 볼륨은 NaN (또는 0)으로 구성되지만 일부 기준을 통과 한 지역은 제외됩니다 (그림 참조). 남아있는 각 세그먼트의 보셀 수가 얼마나되는지, 그리고 2D 평면 (xy, xz, yz)에서 어떻게 분포하는지 알고 싶습니다. matlab에 직접 검색보다는 효율적인 방법으로이 작업을 수행 할 수있는 것이 있습니까? 볼륨이 다소 클 수 있습니다. 예를 들어. 첨부 된 그림에서 7 개의 보셀의 황색/갈색 색상의 한 세그먼트가 있고 xy보다 수직으로 더 확장됩니다. 미리 감사드립니다. enter image description herematlab에, 이웃을 찾으십시오

답변

4

가장 편리한 솔루션은 REGIONPROPS입니다. 하여 예제에서 각 기능의

stats = regionprops(image, 'area', 'centroid') 

, 영역 (즉, 복셀 #)와 함께 중심 구조 통계의 항목이있다.

2

찾고있는 것이 bwlabeln이라고 생각합니다. 2D에서와 마찬가지로 bwlabel처럼 3D 공간에서 얼룩을 찾을 수 있습니다. 그런 다음 regionprops을 사용하여 데이터의 속성을 확인할 수 있습니다.

도움에서 직접 촬영 :

bwlabeln 라벨은 바이너리 이미지의 구성 요소를 연결. L = bwlabeln (BW)은 BW에서 연결된 구성 요소 에 대한 레이블을 포함하는 레이블 행렬 L을 반환합니다. BW는 모든 차원을 가질 수 있습니다. L은 BW와 동일한 크기입니다. L의 요소는 부터 0까지의 정수 값입니다. 0으로 레이블 된 픽셀은 배경입니다. 1 이라는 레이블이 붙은 픽셀은 하나의 객체를 구성하고 2라는 레이블이 붙은 픽셀은 두 번째 객체를 구성하고 등의 픽셀을 구성합니다. 기본 연결은 2 차원의 경우 8, 3 개의 경우 26, 상위 차원의 경우 CONNDEF (NDIMS (BW), '최대')입니다.

+0

'regionprops'를 호출하기 전에'bwlabeln'을 호출 할 필요가 없습니다. – Jonas

+0

@Jonas, 정보 주셔서 감사합니다. 당신의 대답은 upvoted입니다 –

+0

고마워요. 날 구해 줬어. – user1641496