主要内容

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

分水岭

워터셰드 변환

설명

워터셰드영상밝은픽셀은높은높은고도를를를를를를고도고도를나타내는곡면으로으로처리처리하여하여하여하여하여하여하여하여하여하여하여하여하여하여하여나타나타나타나타나타나타나타영상영상영상영상영상영상영상영상영상영상영상영상영상영상에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서에서워터셰드인접영역을고유개별객체분할데사용할수있습니다있습니다。

예제

L=分水岭(A)는 입력 행렬A의 워터셰드 영역을 식별하는 레이블 행렬L을 반환합니다.

L=分水岭(A,conn)은 워터셰드 계산에 사용할 연결성을 지정합니다.

예제

모두축소

겹쳐진 2개의 원형 객체를 포함하는 이진 영상을 만듭니다. 영상을 표시합니다.

center1 = -40; center2 = -center1; dist = sqrt(2*(2*center1)^2); radius = dist/2 * 1.4; lims = [floor(center1-1.2*radius) ceil(center2+1.2*radius)]; [x,y] = meshgrid(lims(1):lims(2)); bw1 = sqrt((x-center1).^2 + (y-center1).^2) <= radius; bw2 = sqrt((x-center2).^2 + (y-center2).^2) <= radius; bw = bw1 | bw2; imshow(bw) title('Binary Image with Overlapping Objects')

图包含一个轴对象。带有标题二进制图像带有重叠对象的轴对象包含类型图像的对象。

이진영상영상대한변환변환합니다합니다합니다。출력영상있는픽셀의값은픽셀과픽셀과bw의0이이픽셀간거리입니다입니다。

D = bwdist(~bw); imshow(D,[]) title('Distance Transform of Binary Image')

图包含一个轴对象。The axes object with title Distance Transform of Binary Image contains an object of type image.

거리 변환 영상을 반전하여 워터셰드 변환을 위해 밝은 픽셀은 높은 고도를, 어두운 픽셀은 낮은 고도를 나타내게 합니다.

D = -D; imshow(D,[]) title('Complement of Distance Transform')

图包含一个轴对象。The axes object with title Complement of Distance Transform contains an object of type image.

워터셰드을합니다합니다。ROI의바깥있는을을0으로 설정합니다.

l =流域(d);l(〜bw)= 0;

결과로 나타나는 레이블 행렬을 RGB 영상으로 표시합니다.

rgb = label2rgb(L,'jet',[.5 .5 .5]); imshow(rgb) title('Watershed Transform')

图包含一个轴对象。The axes object with title Watershed Transform contains an object of type image.

겹쳐진 2개의 구를 포함하는 3차원 이진 영상을 만듭니다.

Center1 = -10;Center2 = -center1;dist = sqrt(3*(2*Center1)^2);半径= dist/2 * 1.4;lim = [落地(中心1-1.2*半径)ceil(中心2+1.2*radius)];[x,y,z] = meshgrid(lim(1):lim(2));bw1 = sqrt((x-center1)。^2 +(y-center1)。^2 +...(z-center1).^2) <= radius; bw2 = sqrt((x-center2).^2 + (y-center2).^2 +...(z-center2).^2) <= radius; bw = bw1 | bw2; figure, isosurface(x,y,z,bw,0.5), axisequal, title('BW')XLABELx, ylabely, zlabelzXlim(Lims),Ylim(Lims),Zlim(Lims)视图(3),Camlight,LightingGouraud

图包含一个轴对象。带标题BW的轴对象包含一个类型补丁的对象。

거리 변환을 계산합니다.

D = bwdist(~bw); figure, isosurface(x,y,z,D,radius/2), axisequaltitle(“距离变换的等图”)XLABELx, ylabely, zlabelzXlim(Lims),Ylim(Lims),Zlim(Lims)视图(3),Camlight,LightingGouraud

图包含一个轴对象。The axes object with title Isosurface of distance transform contains an object of type patch.

거리 변환의 보수를 계산하고 객체가 아닌 픽셀을 강제로inf로 설정한 다음, 워터셰드 변환을 계산합니다.

D = -D; D(~bw) = Inf; L = watershed(D); L(~bw) = 0; figure isosurface(x,y,z,L==1,0.5) isosurface(x,y,z,L==2,0.5) axisequaltitle('Segmented objects')XLABELx, ylabely, zlabelzXlim(Lims),Ylim(Lims),Zlim(Lims)视图(3),Camlight,LightingGouraud

图包含一个轴对象。带有标题分割对象的轴对象包含2个类型补丁的对象。

입력인수

모두축소

입력 영상으로, 임의 차원의 숫자형 배열 또는 논리형 배열로 지정됩니다.

데이터형:single|double|int8|INT16|INT32|int64|uint8|uint16|uint32|uint64|logical

픽셀연결성,다음표있는중로됩니다됩니다됩니다。디폴트연결성은은차원영상의경우경우8, 3차원 영상의 경우26입니다。

의미

2차원 연결성

4-연결

경계가 서로 닿으면 픽셀이 연결됩니다. 픽셀의 이웃은 가로 또는 세로 방향으로 인접한 픽셀입니다.

8-연결

경계또는가닿으면연결됩니다됩니다。픽셀의가로,세로또는방향인접픽셀입니다입니다。

3차원 연결성

6-연결

면이 서로 닿으면 픽셀이 연결됩니다. 픽셀의 이웃은 다음 방향으로 인접한 픽셀입니다.

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

18-연결

면 또는 경계가 서로 닿으면 픽셀이 연결됩니다. 픽셀의 이웃은 다음 방향으로 인접한 픽셀입니다.

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

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

26-연결

면,경계경계가닿으면연결됩니다。픽셀의방향으로한입니다입니다입니다。

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

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

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

더 높은 차원의 경우,分水岭는 디폴트 값Conndef(ndims(a),“最大”)을 사용합니다.

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

참고

디폴트 값이 아닌 연결성을 지정할 경우, 영상 경계에 있는 픽셀은 테두리 픽셀로 간주되지 않을 수 있습니다. 예를 들어,conn = [0 0 0; 1 1 1; 0 0 0]이면이에첫행과행의요소들영상범위를벗어난영역과연결되지되지않기때문에에픽셀로픽셀로간주간주되지않습니다않습니다。

데이터형:double|logical

출력 인수

모두축소

레이블 행렬로, 음이 아닌 정수로 구성된 숫자형 배열로 지정됩니다. 레이블이0으로 지정된 요소는 고유한 워터셰드 영역에 속하지 않습니다. 레이블이1로 지정된 요소는 첫 번째 워터셰드 영역에, 레이블이 2로 지정된 요소는 두 번째 워터셰드 영역에 속하는 식입니다.

  • 이 함수에서 사용되는 워터셰드 변환 알고리즘은 Image Processing Toolbox™의 버전 5.4(R2007a)에서 변경되었습니다. 이전 알고리즘은 서로 인접하지 않은 워터셰드 구역에 레이블을 지정하는 경우가 있었습니다. 이전 알고리즘과 동일한 결과를 얻어야 하는 경우에는 함수分水岭_old를 사용하십시오.

  • 과다분할을 방지하려면imhmin함수를 사용하여 영상에서 얕은 최솟값을 제거한 후에分水岭함수를 사용하십시오.

알고리즘

分水岭는페르난드(Fernand Meyer)알고리즘([1])을사용。

참고문헌

[1]Meyer, Fernand, "Topographic distance and watershed lines,” Signal Processing , Vol. 38, July 1994, pp. 113-125.

확장기능

버전 내역

R2006a 이전에 개발됨