The Watershed Transform::separate objects::please help
3 次查看(过去 30 天)
显示 更早的评论
hi
i try to use Watershed Transform to separate touching objects
i read The Watershed Transform: Strategies for Image Segmentation
By Steve Eddins, MathWorks
www.mathworks.com/.../the-watershed-transform-strate...
i follow exact his code as below but no result i get
i think their a basic error in code
------------generate toching object-------
center1 = -10;
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('bw');
%----------------separate object------------
D = ~bwdist(~bw);
L=watershed(D);
BW(L == 0) = 0;
imshow(BW);
%-------------------------------------------
title('Distance transform of ~bw')
0 个评论
采纳的回答
Iain
2013-7-18
Should BW be bw?
3 个评论
Jeff E
2013-7-18
You've got a few steps wrong, and are missing a few in the middle.
doc watershed - example 1 has basically the same code and works for me. You should just be able to copy and paste to replicate. If you have an older version of Matlab, you can find it on the web: http://www.mathworks.com/help/images/ref/watershed.html
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!