查看: 2895|回复: 6|关注: 0

[已答复] 连接物体分割问题(truncated watershed method)

[复制链接]

新手

6 麦片

财富积分


050


17

主题

48

帖子

0

最佳答案
  • 关注者: 2
发表于 2011-12-28 16:08:34 | 显示全部楼层 |阅读模式
连接物体分割在医学图像处理当中的一个非常常见的应用,如处理细胞粘连,本文就一个具体例子试图与大伙探讨一下这个有趣的问题(注:图片由会友刘yan?提供)。程序代码并不复杂,
joint_objs.jpg                      2.jpg       3.jpg
                                 图1                                                                        图2                                                                      图3
首先对输入图片(图1)进行预处理得到图2, 对图2做分水岭分割,得到图3。图3已经非常接近我们需要的结果,颜色较亮的发条可以认为是应该去除的噪声, 对于该例子可以用利用面积信息(如regionprops函数)很轻易的去除掉得到想要的结果。
note: 与传统的分水岭分割不同(参见help watershed-->2d example),这里加入了一个很简单的修正语句:“invd_map(invd_map < -MIN_DIST) = -inf;”
有待改进的地方:
1.输出的结果不是很完美,如亮彩色的发条, 如何改进?各位有没有更好的办法?
2.关键语句中的MIN_DIST如何选择,在这里我用的是try&fail的方法得到40,有没有可能开发出自动选择该参数的方法?
3.各位有没有更简洁的办法?
function res = partition_jointObjs(im)
%Effect: partition the joint objs into the originally independent obj.
%inputs:
%im:  input bw image
%output:
%res: integert matrix indicating the partitioned objs
%Author: Su dongcai at 2011/12/28
MIN_SIZE = 5;
MIN_DIST = 40;
%0. pre-process:
im = im(:, :, 1);
se = strel('disk', 5);
im = ~im; im = imclose(im, se);
im = imfill(im, 'holes');
figure, imshow(im), title('smoothed image');
%1. calculate the inverse distance map
invd_map = -bwdist(~im);
%truncate the distance map:
min_dist = min(invd_map(:));
invd_map(invd_map < -MIN_DIST) = -inf;
invd_map(~im) = -inf;
res = watershed(invd_map);
%displaying:
rgb = label2rgb(res);
figure, imshow(rgb), title('partitioned image');

partition_jointObjs.m

744 Bytes, 下载次数: 12721

回复主题 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


6

主题

16

帖子

0

最佳答案
发表于 2011-12-30 10:53:44 | 显示全部楼层
大神啊!!!幸亏被我看到了.....学习了!!
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


6

主题

16

帖子

0

最佳答案
发表于 2011-12-30 11:21:10 | 显示全部楼层
要是能去除中间的层叠就完美了,持续关注学习
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

22

帖子

0

最佳答案
发表于 2012-1-1 11:46:34 | 显示全部楼层
求助啊!!!
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


0

主题

13

帖子

0

最佳答案
发表于 2012-2-23 23:59:22 | 显示全部楼层
那个layer的问题如果在watershed之后用opening就可以解决
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


0

主题

4

帖子

0

最佳答案
发表于 2012-10-15 16:40:30 | 显示全部楼层
学习了,谢谢分析
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


0

主题

7

帖子

0

最佳答案
发表于 2020-9-7 10:26:19 | 显示全部楼层
您好,楼主,您解决问题之后的程序和实验方式能分享一下吗
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /5 下一条

快速回复 返回顶部 返回列表