【Matlab】轮廓骨骼提取

本文介绍了使用Matlab中的bwmorph函数进行轮廓骨骼提取的过程。通过形态学的close操作平滑轮廓,然后利用'thin'关键字进行骨骼提取,并通过调整迭代次数去除骨刺,最终得到一像素宽的细线。endpoints函数用于检测骨骼的端点。了解并应用这些技巧对于图像处理中的轮廓精细化至关重要。
摘要由CSDN通过智能技术生成

介绍一个神函数: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函数库中好像没有&

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值