发布于 2014-03-31 20:04:15
下面的代码可以作为起点。
I = load('imagetest.mat');
I = I.imagetest;
I = I./max(I(:));
se = strel('disk', 3);
Io = imopen(I, se);
Ie = imerode(I, se);
Iobr = imreconstruct(Ie, I);
Iobrd = imdilate(Iobr, se);
Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr));
Iobrcbr = imcomplement(Iobrcbr);
bw = im2bw(Iobrcbr, graythresh(Iobrcbr));
figure
imshow(bw, 'InitialMagnification', 'fit')
title('Binary image')输出是

您可以使用watershed命令获取分隔黑白段的分水岭线。可以实验的一些参数是形态学结构元素(strel命令)、graythresh返回的级别以及形态学操作的继承和类型。
希望这能有所帮助。
发布于 2014-03-31 20:42:31
如果您知道阈值,最简单的方法是:
BW = im2bw(I, level)其中I是灰度图像,level是阈值。另一个不太难达到阈值的方法是局部自适应阈值。它将根据局部窗口的平均强度来确定阈值。再说一遍,这里没什么花哨的,最简单的分割。
https://stackoverflow.com/questions/22769238
复制相似问题