怎样用matlab做3D分水岭watershed

我现在有一组切片图片,想知道怎么用matlab组成3d的然后分水岭。。求助!

第1个回答  2010-11-22
center1 = -10;
center2 = -center1;
dist = sqrt(3*(2*center1)^2);
radius = dist/2 * 1.4;
lims = [floor(center1-1.2*radius) ceil(center2+1.2*radius)];
[x,y,z] = meshgrid(lims(1):lims(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;
D = bwdist(~bw);
figure, isosurface(x,y,z,D,radius/2), axis equal
title('Isosurface of distance transform')
xlabel x, ylabel y, zlabel z
xlim(lims), ylim(lims), zlim(lims)
view(3), camlight, lighting gouraud本回答被网友采纳

急求分水岭和水平集算法的MATLAB代码
...matlab已经自己实现了分水岭算法了,调用watershed()函数就行,至于水平集就不太清楚了!!

图像分割——分水岭算法
5.对修改后的分割函数做分水岭变换计算。 使用MATLAB图像处理工具箱 注:期间用到了很多图像处理工具箱的函数,例如fspecial、imfilter、watershed、label2rgb、imopen、imclose、imreconstruct、imcomplement、imregionalmax、bwareaopen、graythresh和imimposemin函数等。 2 步骤 第一步:读入彩色图像,将其转化成灰度图像 clc; c...

相似回答