【Matlab】轮廓骨骼提取

介绍一个神函数:bwmorph。人生苦短,我还是选matlab吧。

背景:需要把图像中提取出来的粗轮廓“压缩”成一个像素点的细线,即骨骼提取。本来的轮廓粗细不均匀,用图像腐蚀会导致一些点断掉。(注:轮廓内部需要填充)

 

  • 首先是形态学close操作
%openclose
se = strel('disk', 5, 4);
fo = imclose(img, se);
figure(1)
imshow(fo)

strel定义核的形状和大小,关键字‘disk’指圆形核,后面两个数字指核的大小和圆的半径。这个函数还有其他形状的核,但此处目的为了平滑轮廓,所以选圆形核。

 

  • 轮廓骨骼提取
ginf = bwmorph(fo, 'thin', 100);

关键字‘thin’的作用不太清楚,后面有机会再去研究,数字100指迭代次数,可以用‘Inf’代替,迭代次数不同效果也不同。

 

  • 骨刺去除
for k = 1:15
    ginf = ginf & ~endpoints(ginf);
end
figure(2)
imshow(ginf)

k也表示迭代次数,该操作可以去除上一部提取的骨骼中的小骨刺。

endpoints函数库中好像没有&

  • 1
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值